🔬Dataiku DSS: Kurumsal AI Platformu — Detaylı Kılavuz
Dataiku DSS (Data Science Studio), veri bilimcilerden iş kullanıcılarına kadar herkesin AI/ML projelerini geliştirebileceği uçtan uca bir kurumsal veri platformudur. LLM Mesh katmanı sayesinde tüm generatif AI iş akışlarını merkezi olarak yönetir; farklı sağlayıcıların modellerini tek bir API üzerinden birleştirirken maliyet kontrolü, güvenlik ve gözlemlenebilirlik sağlar.
15.1 Prompt Studio — Kurumsal Prompt Mühendisliği Ortamı
Prompt Studio, Dataiku'nun tam özellikli prompt geliştirme ortamıdır. LLM Mesh üzerinde çalışır; farklı modeller arasında prompt performansını karşılaştırmayı ve üretim kaliteli prompt'ları kolayca dağıtmayı sağlar.
- Aynı prompt'u GPT-4o, Claude 3.5 Sonnet, Mistral Large ile eş zamanlı test et
- Kalite, hız ve maliyet metriklerini yan yana karşılaştır
- Şirket politikasına uygun model havuzunu admin kısıtlayabilir
- Tek tıkla batch generation pipeline'ına dönüştür
- Dataset üzerinde toplu LLM dönüşümü uygula
- Çıktıyı downstream dataset'e yaz; downstream analizler otomatik tetiklenir
- Her prompt versiyonunu sakla ve karşılaştır
- Prompts-as-code yaklaşımıyla Git entegrasyonu
- A/B test için farklı versiyonları paralel çalıştır
- LLM'in kendi prompt'unu otomatik iyileştirmesini sağla
- Test dataset'i ile iteratif optimizasyon döngüsü
- Değerlendirme metriğine göre en iyi versiyonu seç
# Dataiku'da LLM Mesh üzerinden model çağrısı
import dataiku
client = dataiku.api_client()
project = client.get_project("MY_PROJECT")
# LLM Mesh üzerinden model seç (admin tarafından önceden tanımlandı)
llm = project.get_llm("openai:gpt-4o")
# Completion isteği gönder
completion = llm.new_completion()
completion.with_message("Analiz et: " + document_text)
resp = completion.execute()
print(resp.text)
print(f"Kullanılan token: {resp.usage.total_tokens}")
print(f"Maliyet: ${resp.usage.estimated_cost_usd:.4f}")
- dataiku.api_client(): Dataiku DSS'in iç API'siyle bağlantı kurar. Uygulama anahtar yönetimini DSS üstlenir; kod içinde API anahtarı yoktur.
- KOMTAS_COPILOT: Proje adı — Dataiku DSS'de her proje izole bir veri ve model ortamı oluşturur. Projeler arası veri paylaşımı için
dataiku.Dataset(name, project_key=...)kullanılır. - LLM Mesh bağlantısı: Üretim kodu modeli doğrudan Anthropic/OpenAI API'sini çağırmaz; Dataiku Mesh üzerinden çağrır. Bu, merkezi kota, denetim ve maliyet izleme sağlar.
# Aynı prompt'u farklı modellerde karşılaştır
models_to_test = [
"anthropic:claude-3-5-sonnet",
"openai:gpt-4o",
"mistral:mistral-large-latest"
]
prompt = "Şu metni özetle: {text}"
test_inputs = ["uzun metin örneği..."]
results = {}
for model_id in models_to_test:
llm = project.get_llm(model_id)
responses = []
for inp in test_inputs:
comp = llm.new_completion()
comp.with_message(prompt.format(text=inp))
resp = comp.execute()
responses.append({
"output": resp.text,
"tokens": resp.usage.total_tokens,
"latency_ms": resp.latency_ms
})
results[model_id] = responses
# Sonuçları Dataiku dataset'e yaz
output_df = pd.DataFrame(results)
dataiku.Dataset("model_comparison_results").write_with_schema(output_df)
- A/B testi mantığı: Aynı prompt'u birden fazla modele göndermek, model seçimini veri odaklı yapmanın temel yöntemidir. Yalnızca göz kararı değerlendirme yerine kalite skoru (RAGAS, LLM-as-judge) ekleyin.
- Maliyet farkı: Tablodaki modeller arasında giriş maliyeti 66× farklılık gösterir. 100K günlük istek için bu fark aylık binlerce USD'ye dönüşebilir.
- Parallel çağrı:
asyncio.gather()veya ThreadPoolExecutor ile karşılaştırma çağrılarını eş zamanlı göndermek toplam süreyi önemli ölçüde azaltır.
15.2 LLM Bağlantıları — 12+ Sağlayıcı Desteği
Dataiku LLM Mesh, iki tür LLM bağlantısı destekler: hosted API (bulut modeller) ve locally-running (HuggingFace ile kendi sunucularınızda). Tüm bağlantılar merkezi Admin konsolundan yönetilir.
Claude 3 Opus/Sonnet/Haiku
GPT-4o, o3, Embeddings
Enterprise güvenlik + compliance
Titan, Llama, Mistral
Gemini 1.5 Pro/Flash
Large, Medium, Small
Model katalog erişimi
Veri ambarı entegrasyonu
HuggingFace Text Generation Inference (TGI) veya vLLM ile çalışan yerel modeller; Llama 3, Mistral, Phi-3, Qwen gibi açık kaynak modelleri şirket altyapısında güvenle çalıştırabilirsiniz.
15.3 RAG & Knowledge Banks — No-Code Bilgi Tabanı
Knowledge Banks, Dataiku'nun no-code RAG (Retrieval-Augmented Generation) pipeline'ıdır. Dokümanları otomatik olarak parçalara böler, vektörleştirir ve arama indeksine kaydeder. Chat UI veya ajan yapıları ile doğrudan kullanılabilir.
# Dataiku Knowledge Bank API kullanımı
import dataiku
client = dataiku.api_client()
project = client.get_project("KNOWLEDGE_PROJECT")
# Knowledge Bank'ı al
kb = project.get_knowledge_bank("sirket_politikalari_kb")
# Sorgula
results = kb.search(
query="izin ve tatil politikası nedir?",
top_k=5,
score_threshold=0.7
)
for chunk in results.chunks:
print(f"Kaynak: {chunk.metadata['source']}")
print(f"Skor: {chunk.score:.3f}")
print(f"Içerik: {chunk.text[:200]}")
print("---")
# LLM ile birleştirerek cevap üret
llm = project.get_llm("anthropic:claude-3-5-sonnet")
context = "\n\n".join([c.text for c in results.chunks])
comp = llm.new_completion()
comp.with_message(
"Baglan:\n" + context +
"\n\nSoru: izin ve tatil politikası nedir?" +
"\nYalnizca baglamdaki bilgilere dayanarak yanıtla."
)
response = comp.execute()
print(response.text)
- knowledge_bank: Dataiku DSS'in belge tabanlı RAG deposudur. Dokümanlar otomatik chunk'lanır, embed edilir ve HNSW indeksine eklenir.
- num_results: 3-5 arası genellikle yeterlidir. Fazla sonuç prompt boyutunu şişirir ve modelin dikkatini dağıtır — 'lost-in-the-middle' problemi olarak bilinir.
- Eşik ayarı: Minimum benzerlik skoru (threshold) belirlenmezse alakasız belgeler RAG yanıtını bozar. İlk kalibrasyon için farklı sorgularla test edin, 0.6-0.75 arası başlangıç noktası olarak kullanın.
15.4 Guardrails Sistemi — Çok Katmanlı AI Güvenliği
Dataiku Guardrails, LLM çıktılarını ve girişlerini üç farklı düzeyde korur: Bağlantı düzeyi (tüm kullanımlar için), Ajan düzeyi (belirli akışlar için) ve Kullanım zamanı (her çağrıda dinamik). Bu katmanlı mimari kurumsal güvenlik gereksinimlerini karşılar.
| Guardrail Türü | Açıklama | Yapılandırma | Eylem |
|---|---|---|---|
| 🔍 PII Tespiti | TC kimlik, e-posta, telefon, kredi kartı, IBAN gibi kişisel verileri girişte veya çıktıda tespit eder | Varlık tipleri seçilir (regex + NER modeli) | Engelle / Maskele / Uyar |
| 🚫 Prompt Injection | Sistem prompt'unu manipüle etmeye veya devre dışı bırakmaya çalışan girişleri tespit eder | Dil modeli tabanlı sınıflandırıcı | Engelle / Log |
| ☠️ Toksisite Filtresi | Nefret söylemi, şiddet, küfür ve zararlı içeriği hem girişte hem çıktıda filtreler | Eşik skoru ayarlanabilir (0.0–1.0) | Engelle / Redact / Uyar |
| 📌 Konu Sınırları | LLM'i yalnızca belirli konularla (örn. müşteri desteği) sınırlar; konu dışı sorulara yanıt vermesini engeller | İzin verilen ve yasaklanan konu listesi | Yönlendir / Reddet |
| ⚖️ Önyargı Tespiti | Cinsiyet, ırk, din, yaş gibi korunan özelliklere göre önyargılı çıktıları tespit eder | Fairness metrik eşiği | Bayrakla / Reddet |
| 🔧 Özel Guardrail | Python kodu ile kuruma özgü iş kuralları (örn. rakip marka adları, gizli proje isimleri) | Python fonksiyonu yaz, True/False döndür | Tamamen özelleştirilebilir |
# Dataiku'da özel guardrail — rakip marka filtresi
from dataiku.llm.guardrails import BaseGuardrail
class CompetitorMentionGuardrail(BaseGuardrail):
"""Rakip markaların yanıtlarda geçmesini engeller"""
COMPETITORS = ["RakipFirma1", "RakipFirma2", "diger_rakip"]
def check_output(self, output_text: str, context: dict) -> dict:
for competitor in self.COMPETITORS:
if competitor.lower() in output_text.lower():
return {
"passed": False,
"reason": f"Yanit rakip marka adi iceriyor: {competitor}",
"action": "block" # veya "warn", "redact"
}
return {"passed": True}
def check_input(self, input_text: str, context: dict) -> dict:
return {"passed": True} # Giris kontrolü gerekmiyor
- BaseGuardrail miras alımı: Dataiku'nun yerleşik guardrail soyut sınıfından türetmek, guardrail'ı LLM Mesh pipeline'ına standart biçimde entegre eder.
check_output()metodu her model yanıtı için otomatik çağrılır. - Rakip listesi: Bu listeyi kod içine sabit kodlamak yerine Dataiku değişkeni veya merkezi yapılandırmadan okuyun. Güncellemeler deploy gerektirmemeli.
- False positive yönetimi: Filtre çok katıysa meşru yanıtlar bloklanır. İlk dağıtımda log-only modda çalıştırıp false positive oranını ölçün, ardından bloklamaya geçin.
15.5 Maliyet Kontrolü & Kota Yönetimi
Dataiku'nun Cost Control modülü, LLM harcamalarını gerçek zamanlı takip eder ve aşım durumunda otomatik blokaj uygular. Kurumsal bütçe yönetimi için kritik bir özellik olup yalnızca admin tarafından yapılandırılabilir.
- Sağlayıcı düzeyi: Tüm OpenAI çağrıları için aylık $500 limiti
- Proje düzeyi: "Müşteri_Chatbot" projesi için haftalık $100
- Kullanıcı düzeyi: Her veri bilimcisi için günlük 50.000 token
- Limitleri aşınca çağrılar otomatik bloklanır
- %80 kullanımda uyarı e-postası gönderilir
- Günlük, haftalık, aylık veya özel tarih aralığı
- Kullanım geçmişi dashboard'da görselleştirme
- Maliyet projeksiyonu ve trend analizi
- Full / Basic görünürlük izin seviyeleri
- CSV/API üzerinden maliyet raporları
# Admin API ile programatik kota yönetimi
import dataiku
admin_client = dataiku.api_client()
# Provider düzeyi kota — tüm OpenAI çağrıları
admin_client.set_llm_quota(
scope="provider",
scope_id="openai",
quota_type="cost_usd",
limit=500.0,
reset_period="monthly",
alert_threshold=0.8, # %80'de uyarı
action_on_exceed="block"
)
# Proje düzeyi kota
admin_client.set_llm_quota(
scope="project",
scope_id="CHATBOT_PROJECT",
quota_type="tokens",
limit=1_000_000,
reset_period="weekly",
action_on_exceed="block"
)
# Kullanım raporu çek
usage = admin_client.get_llm_usage_report(
period="last_30_days",
group_by="provider" # veya "project", "user"
)
for entry in usage:
print(f"{entry.scope}: ${entry.cost_usd:.2f} / {entry.tokens:,} token")
- Programatik kota: UI yerine API üzerinden kota yönetimi, Infrastructure as Code prensibini LLM yönetimine taşır. Değişiklikler versiyon kontrolüne alınabilir.
- set_quota(): Dataiku DSS Admin API'sindeki bu çağrı kullanıcı/grup bazlı günlük token limitlerini günceller. Limit aşıldığında Mesh,
429 Too Many Requestsdöndürür. - Otomasyon önerisi: Kota güncellemelerini Python scriptiyle otomatize etmek için n8n scheduled workflow veya Kubernetes CronJob kullanın.
15.6 Agent Hub — Kurumsal Ajan Platformu
Agent Hub, Dataiku'nun araç destekli çoklu ajan iş akışları platformudur. Veri analizi, raporlama, e-posta gönderimi ve API çağrıları gibi iş görevlerini otomatikleştiren ajanlara kolayca araç bağlanmasını sağlar.
Python/R sandbox'ında güvenli yürütme, veri analizi
Veri okuma/yazma, SQL sorguları, agregasyon
Gerçek zamanlı web araması ve kaynak doğrulama
RAG tabanlı kurumsal bilgi tabanı sorgulama
Dış servislere API çağrıları, webhook tetikleme
Python ile şirkete özgü araç geliştirme
- Ajan, Dataiku Dataset aracıyla aylık satış verilerini çeker
- Python aracıyla analiz yapar ve grafik oluşturur
- Knowledge Bank'tan ürün ve müşteri bilgilerini getirir
- Claude Sonnet ile yönetici özeti yazar (guardrails aktif; PII koruması dahil)
- HTTP aracıyla raporları ilgili kişilere e-posta olarak gönderir
- Tüm LLM maliyeti Mesh'te izlenir; kota aşımı otomatik engellenir