Uygulamayı aç
Moonborn — Developers

Drift eşiğini ürün yüzeyine göre ayarla

Çalışma alanı varsayılan eşiğini seç, persona başına geçersiz kıl, üretim yayılımı (rollout) öncesi etiketli örneklerle sağlık kontrolü yap.

Varsayılan drift eşiği 0.30 orta yol bir tercihtir — çoğu sohbet ürünü için makuldür. Ama bir müşteri destek botu ile yaratıcı bir RPG NPC'si aynı drift toleransına sahip olmamalıdır. Bu rehber yüzeyine göre eşiği seçer, persona başına geçersiz kılar ve üretime almadan önce etiketli bir örnekle değerinin gerçekten doğru olduğunu doğrular.

Voice drift'i ele al eğitiminde eşiği nasıl ayarlayacağını gördün. Burada doğru değeri nasıl seçeceğin var.

Bu rehberi bitirdiğinde

  • Ürün yüzeyine göre önerilen eşik değerlerini bileceksin.
  • Çalışma alanı varsayılanını ayarlayabilecek + persona başına geçersiz kılabileceksin.
  • Eşiği yayılım öncesi etiketli örnek üzerinde sağlık kontrolünden geçirebileceksin.
  • Doğru pozitif / yanlış pozitif hedeflerine göre yinelemeli ayarlayabileceksin.
  • "Eşik düşürdüm ama auto-recover açmadım" gibi tipik karşı örüntüleri (anti-pattern) önleyebileceksin.

Ön koşul: çalışma alanı + API anahtarı + en az bir persona. Drift zarfını temelden tanımıyorsan önce Drift detection kavramı.

Önerilen eşik tablosu

YüzeyEşikDavranış toleransı
Müşteri desteği, düzenlemeye tabi ses, sağlık0.20Karakter çok disiplinli kalır; küçük sapma bile işaretlenir
Genel ürün sohbeti, marka-komşusu0.30 (varsayılan)Dengeli; çoğu yanıt geçer, açık sapmalar tutulur
Marka kanalı, satış otomasyonu0.25Marka sesi kayması erken yakalanır
Yaratıcı oyun, düşük-riskli sahne NPC'leri0.45Karakterin doğaçlama yapmasına izin verir
Yaratıcı yazım, hikâye keşfi0.50Yalnız büyük kaymalar işaretlenir

Çalışma alanı varsayılanını ayarla

await client.config.setItem({
  key: 'engine.pipeline.drift_detection.threshold',
  value: 0.20,
  scope: 'workspace',
  scopeId: 'ws_...',
});

Persona başı geçersiz kılma

Aynı çalışma alanında farklı yüzeylere hizmet eden persona'lar varsa, her birine ayrı eşik verebilirsin:

await client.config.setItem({
  key: 'engine.pipeline.drift_detection.threshold',
  value: 0.45,
  scope: 'persona',
  scopeId: 'per_npc_quest_giver...',
});

Bu, çalışma alanı varsayılanını yalnızca o persona için geçersiz kılar. Kalan persona'lar çalışma alanı varsayılanını kullanmaya devam eder.

Yayılım öncesi etiketli örnekle doğrula

Eşiği canlıya almadan önce insan-etiketli bir derlem (corpus) üzerinde değerini test et. Tipik akış: üretimden son 50 yanıtı al, her yanıt için bir kıdemli inceleyici "ses-dışı" / "seste" etiketi yapsın, sonra aday eşiği bu derleme uygula.

type LabeledReply = {
  personaId: string;
  content: string;
  humanLabel: 'in-voice' | 'off-voice';
};
 
const replies: LabeledReply[] = await fetchReplyCorpus(50);
const candidateThreshold = 0.25;
 
let truePositive = 0;
let falsePositive = 0;
let trueNegative = 0;
let falseNegative = 0;
 
for (const r of replies) {
  const drift = await client.consistency.scoreReply({
    personaId: r.personaId,
    reply: r.content,
  });
 
  const wouldFlag = drift.score >= candidateThreshold;
  const actuallyOffVoice = r.humanLabel === 'off-voice';
 
  if (wouldFlag && actuallyOffVoice) truePositive++;
  if (wouldFlag && !actuallyOffVoice) falsePositive++;
  if (!wouldFlag && !actuallyOffVoice) trueNegative++;
  if (!wouldFlag && actuallyOffVoice) falseNegative++;
}
 
const tpRate = truePositive / (truePositive + falseNegative);
const fpRate = falsePositive / (falsePositive + trueNegative);
 
console.log({ tpRate, fpRate });

Hedef bantlar

Doğru pozitif (TP) oranı ≥ 0.80  (ses-dışı yanıtların %80+'ı işaretleniyor)
Yanlış pozitif (FP) oranı ≤ 0.10  (seste yanıtların ≤%10'u yanlış işaretleniyor)

Yinelemeli ayar

Tipik ayar döngüsü:

  1. Önerilen değerden başla (tabloya göre, örn. müşteri desteği için 0.20).
  2. Bir hafta gözle — driftAlert: true sayısını ve kalite kontrol inceleme kuyruğu uzunluğunu izle.
  3. FP oranı yüksekse (kuyruk gerçek olmayan işaretlerle dolmuş) — eşiği 0.02–0.05 yukarı çek.
  4. TP oranı düşükse (kullanıcı şikâyeti var ama drift uyarısı yok) — eşiği 0.02–0.05 aşağı çek.
  5. Stabil olana kadar tekrar et.

Yaygın karşı örüntü (anti-pattern)

Eşiği zaman içinde nasıl izlersin

Çalışma alanı seviyesinde drift ölçütleri için:

const summary = await client.audits.summary({
  workspaceId: 'ws_...',
  range: '7d',
});
 
console.log(summary.driftAlertRate); // 0.04 → %4 yanıt işaretlenmiş

driftAlertRate 30 günde anlamlı biçimde değişiyorsa nedenini araştır — yeni persona, modelin güncellenmesi veya özel testin eklenmesi tipik tetikleyicilerdir.

İlgili

Drift detection kavramı

driftScore arkasında neyin ölçüldüğü ve referans hattın nasıl kalibre edildiği.

Open →
Voice drift'i ele al

Eşik + uyarı davranışı + webhook akışını uçtan uca kurma.

Open →
Drift detection nasıl çalışır (blog)

Teknik arka plan: kosinüs uzaklığı, parmak izi senaryoları.

Open →
Voice fingerprint kavramı

Eşiğin karşılaştırıldığı referans imzanın nasıl oluştuğu.

Open →