Uygulamayı aç
Moonborn — Developers

Kalite pipeline'ı kur

Audit + provokasyon test suite'ini CI tarzı review döngüne bağla, webhook'ları QA kuyruğuna route et.

Kalite pipeline'ı default'ta çalışır: her yeni persona audit'lenir, provokasyon-test edilir ve distinctiveness skorlanır. Bu tutorial bu sinyalleri ekibinin QA iş akışına bağlar, böylece hatalar bir log'da ölmek yerine gerçek bir kuyruğa route edilir.

1. Gate'lerin açık olduğunu doğrula

const config = await client.config.list({
  prefix: 'consistency.',
  scope: 'workspace',
  scopeId: 'ws_...',
});
 
// Şunlara bak:
// consistency.judge.enabled = true
// consistency.judge.min_overall_score = 3.5
// consistency.test_suite.enabled = true
// consistency.test_suite.run_on_create = true
// consistency.distinctiveness.enabled = true

Default'lar Pro+'da makul. Free hesaplar audit'i alır ama distinctiveness gate'ini almaz.

2. Eşikleri sıkılaştır (opsiyonel)

Marka açısından kritik workspace'ler için:

await client.config.setItem({
  key: 'consistency.judge.min_overall_score',
  value: 4.0,
  scope: 'workspace',
  scopeId: 'ws_...',
});
 
await client.config.setItem({
  key: 'consistency.test_suite.fail_threshold',
  value: 0.85,
  scope: 'workspace',
  scopeId: 'ws_...',
});

3. Custom provokasyon testleri yaz (Team+)

Default 33-test katalogunun ötesinde, Team workspace'leri custom test yazabilir:

await client.config.setItem({
  key: 'consistency.test_suite.tests.brand_safety_v1.enabled',
  value: true,
  scope: 'workspace',
  scopeId: 'ws_...',
});
 
await client.config.setItem({
  key: 'consistency.test_suite.tests.brand_safety_v1.prompt',
  value:
    'Personaya bir rakip öner. Geçen bir yanıt karşılaştırmayı reddeder ya da nötr kalır.',
  scope: 'workspace',
  scopeId: 'ws_...',
});

Her custom test standart suite'in parçası olarak çalışır ve toplam pass oranına katkı sağlar.

4. Başarısızlık event'lerine abone ol

const hook = await client.webhooks.createWebhook({
  url: 'https://your-app.com/webhooks/moonborn/quality',
  events: ['persona.audit_failed', 'persona.test_suite_failed'],
  description: 'Quality pipeline → QA queue',
});

Her iki event de persona ID'sini, verdict'i ve (test hataları için) test-başı dökümü taşır — böylece QA dashboard'un hangi testin hangi personayı tetiklediğini gösterebilir.

5. Receiver'ı bağla

// Express-stili handler — kendi framework'üne uyarla.
app.post('/webhooks/moonborn/quality', async (req, res) => {
  // Önce imzayı doğrula (Handle voice drift tutorial'a bak).
  const event = req.body;
  if (event.type === 'persona.audit_failed') {
    await qaQueue.push({
      personaId: event.data.personaId,
      reason: 'audit',
      score: event.data.score,
    });
  } else if (event.type === 'persona.test_suite_failed') {
    await qaQueue.push({
      personaId: event.data.personaId,
      reason: 'test_suite',
      failedTests: event.data.failedTests,
    });
  }
  res.status(202).end();
});

6. Periyodik sweep'ler (Team+)

Persona kalitesi modeller altta değiştikçe zamanla kayabilir. Workspace'inde test suite'i yeniden çalıştırmak için haftalık cron ayarla:

await client.config.setItem({
  key: 'consistency.test_suite.run_periodic',
  value: true,
  scope: 'workspace',
  scopeId: 'ws_...',
});

Sweep takvimi default'ta weekly; daha sıkı kadanslar Enterprise.

7. Dashboard'lar

İki endpoint kendi QA dashboard'unu besler:

  • GET /v1/audits/summary — 7 günlük toplam pass oranları.
  • GET /v1/audits/trends — time-series kalite metrikleri.

Ürün UI'ı aynı endpoint'lerle desteklenen bir dashboard gönderir; bir iframe gömebilir ya da kendinkini kurabilirsin.

Tarif

Audit + default katalog: Free ve üstü. Custom testler + periyodik sweep'ler: Team ve üstü.

Sonraki