AI Observability

Yapay Zeka Gözlemlenebilirliğini Ölçeklendirme: Langfuse ile Çok Kiracılı İzolasyonu ve Maliyet Atamasını Ustalaşmak

LLM tabanlı uygulamalar tek kiracılı prototiplerden yüksek hacimli çok kiracılı SaaS platformlarına geçiş yaptıkça, gözlemlenebilirliğin karmaşıklığı katlanarak artar. Artık bir prompt'un başarılı olup olmadığını görmek yetmez; Kiracı A'nın Kiracı B'nin verilerini göremediğinden emin olmanız ve her müşterinin kullanımının altyapınıza ne kadar mal olduğunu bilmeniz gerekir. Langfuse, açık kaynaklı bir LLM mühendisliği platformu olarak bu zorlukları çözmek için gerekli yapı taşlarını sunar, ancak bunları üretimde doğru bir şekilde uygulamak yapılandırılmış bir yaklaşım gerektirir.

Çok Kiracılı Mimarilerde Paylaşılan Durumun Zorluğu

Geleneksel mikro hizmet mimarilerinde veri izolasyonu genellikle veritabanı veya konteyner düzeyinde ele alınır. Ancak yapay zeka gözlemlenebilirliğinde veriler prompt izleri, üretimler ve değerlendirmeler aracılığıyla akar. Tüm kiracılar için tek bir global Langfuse projesi kullanırsanız, iki kritik riskle karşı karşıya kalırsınız: veri sızıntısı ve maliyet bulanıklığı. Bir sağlık müşterisinden gelen bir iz, asla bir finansal hizmetler panelinde görünmemeli ve farklı müşteri katmanlarını faturalandırırken token maliyetlerini ortalama olarak hesaplayamazsınız.

Strateji 1: API Anahtarları ile Proje Düzeyinde İzolasyon

Langfuse'ta izolasyonu sağlamak için en sağlam yöntem, yerel çoklu proje desteğini kullanmaktır. Her Langfuse projesi, kendi API anahtarlarına, saklama politikalarına ve erişim kontrollerine sahip ayrı bir ad alanı olarak hareket eder.

Kayıt Sırasında Dinamik Proje Oluşturma

Yeni bir kiracı SaaS platformunuza kaydolduğunda, arka uç sisteminiz programatik olarak yeni bir Langfuse projesi oluşturmalıdır (veya onları önceden oluşturulmuş bir havuza atamalıdır) ve benzersiz Public ve Secret anahtarları üretmelidir. Bu anahtarları istemci tarafındaki kodda değil, kiracı meta verisi depolamanızda güvenle saklayın.

// Örnek: Kiracı kaydı sırasında Langfuse kimlik bilgilerini atama
async function provisionTenant(tenantId, email) {
  // 1. Bir Langfuse Projesi oluşturun veya alın
  const project = await langfuseAdminClient.createProject({
    name: `tenant-${tenantId}`,
    metadata: { ssa_tenant_id: tenantId }
  });

  // 2. Bu projeye özel API Anahtarları oluşturun
  const keys = await langfuseAdminClient.createApiKeys({
    publicKey: `pk-${tenantId}`,
    secretKey: await generateSecureSecret(),
    projectId: project.id
  });

  // 3. Veritabanınızda güvenle saklayın (şifreli)
  await db.tenants.update({
    where: { id: tenantId },
    data: {
      langfuse_public_key: keys.publicKey,
      langfuse_secret_key: keys.secretKey
    }
  });
}

Strateji 2: Meta Veri Etiketleri ile Hassas Maliyet Ataması

Kiracı başına ayrı bir proje oluşturmak, yüksek hacimli kullanım senaryoları için (örneğin, yüz binlerce küçük kiracı) operasyonel olarak çok ağır geliyorsa, tek bir paylaşılan proje kullanabilir ve metadata ve tags kullanarak sıkı mantıksal izolasyon uygulayabilirsiniz.

Langfuse, her iz, span ve üretime keyfi anahtar-değer çiftleri eklemenize olanak tanır. İç kiracı kimliğinizi bu alanlara tutarlı bir şekilde enjekte ederek, maliyetleri kiracı başına filtreleyebilir ve toplayabilirsiniz.

Maliyet Takibini Uygulama

Langfuse, token kullanımını ve model fiyatlandırmasını otomatik olarak yakalar. Maliyetleri atamak için izlerinizin doğru şekilde etiketlendiğinden emin olmalısınız. Bunu uygulama katmanınıza nasıl entegre edebileceğiniz aşağıda gösterilmektedir:

import { Langfuse } from 'langfuse';

const langfuse = new Langfuse({
  publicKey: 'pk-shared',
  secretKey: 'sk-shared',
  baseUrl: 'https://cloud.langfuse.com'
});

export function logLLMGeneration(tenantId, model, input, output, tokens) {
  return langfuse.generation({
    name: "customer-support-bot",
    model: model,
    input: input,
    output: output,
    usage: {
      promptTokens: tokens.prompt,
      completionTokens: tokens.completion
    },
    // KRİTİK: İzolasyon ve faturalandırma için kiracı ID ile etiketleyin
    metadata: {
      tenantId: tenantId,
      feature: "auto-response",
      version: "v2.1"
    },
    tags: [`tenant:${tenantId}`]
  });
}

Faturalandırma Entegrasyonu ve Veri Gizliliği

Veriler doğru şekilde etiketlendiğinde veya izole edildiğinde, artık bir faturalandırma hattı oluşturabilirsiniz. Proje düzeyinde izolasyon için, metrikleri doğrudan her kiracının projesinden çekebilirsiniz. Paylaşılan projeler için, üretim günlüklerini metadata.tenantId ile filtreleyerek sorgulamak üzere Langfuse API'sini kullanın.

Gizlilik Dikkat: Özellikle HIPAA veya GDPR gibi uyum odaklı sektörlerde, verileri Langfuse'a göndermeden önce kayıt orta katmanınızın PII'yi (Kişisel Kimlik Bilgileri) temizlediğinden emin olun. Langfuse sansürleme (redaction) destekler, ancak uygulama düzeyinde filtreleme daha güvenli bir ilk savunma hattıdır.

Sonuç

Bir SaaS ortamında çok kiracılı gözlemlenebilirliği uygulamak, sadece günlükleri görmekle ilgili değildir; veri sınırlarını korumak ve şeffaf, granüler maliyet görünürlüğü sağlamakla ilgilidir. Kiracı başına Langfuse projelerinin sıkı güvenliğini mi yoksa paylaşılan bir projede meta veriye dayalı etiketlemenin ölçeklenebilirliğini mi seçerseniz seçin, Langfuse, üretim düzeyinde bir yapay zeka gözlemlenebilirliği yığını oluşturmak için gerekli kanca noktalarını (hooks) sağlar. Kayıt akışınızla başlayın, tutarlı etiketlemeyi sağlayın ve faturalandırma mantığınızı doğrulanmış iz verilerinin üzerine inşa edin.

Share: