test(eval): sohbet eval verisi ve altyapısı güncellendi (iş 6) [KARAR]

- s104/s105: havuz düzeltmelerinden (B2) sonra öncül değişti; soru ve beklenti yeniden yazıldı.
- s084: icermemeli 'garanti' sorumluluk reddine takılıyordu; daraltıldı.
- s018/s033/s039/s048: kabul edilebilir cevapta araç şartı kaldırıldı (04 raporu §H).
- s088: adın kabul edilmesi metin kontrolüyle yakalanır.
- Kilitli (paketsiz) senaryoda Jev hakem bağlamına ürün bilgisi eklendi (299 TL, /paket yanlış alarmı).
- Paketsiz liste özeti kırpması danisman-prompt.ts'e taşındı (sohbetListeOzeti); route.ts ve eval aynı fonksiyonu kullanır, kopya kalktı. Davranış aynı.
- --tekrar N, tutarlılık özeti, ortalama araç çağrısı ve soru başı maliyet eklendi.
- Vaat regex'i 'AIS'e girersin', 'sınava girersin' cümlelerine takılmıyor.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
bilalgursen
2026-10-05 08:14:51 +03:00
parent e06c486b1a
commit 080dcc9909
5 changed files with 74 additions and 31 deletions

View File

@@ -13,13 +13,12 @@ import { anahtarVar, SORUMLULUK_REDDI } from "@/lib/ai/client";
import { kullanicininRaporu, sohbetGecmisiGetir } from "@/features/rapor/rapor-queries";
import type { AracBaglami } from "@/lib/ai/araclar";
import { danismanAkisi } from "@/lib/ai/sohbet-akisi";
import { sistemPromptu } from "@/lib/ai/danisman-prompt";
import { sistemPromptu, sohbetListeOzeti } from "@/lib/ai/danisman-prompt";
import { modelPenceresi, onayMesajiMi } from "@/lib/ai/sohbet-gecmisi";
import { profilGetir } from "@/lib/danisman-profil-db";
import { listeOzetiCikar } from "@/lib/ai/rapor";
import type { RaporSonuc } from "@/features/rapor/types/rapor";
import type { RaporParams } from "@/features/rapor/types/rapor";
import { ACIK_SATIR } from "@/lib/rapor-maske";
const MAX_GECMIS = 12;
/** Akış cevabının başlıkları; X-Kredi-Dusuldu'yu istemci bakiye için okur. */
@@ -144,12 +143,7 @@ export async function POST(request: NextRequest) {
rapor.result as RaporSonuc,
(rapor.params as RaporParams).sira,
);
const listeOzeti = kilitli
? [
...tamOzet.split("\n").slice(0, ACIK_SATIR),
`… kalan ${24 - ACIK_SATIR} tercih kilitli.`,
].join("\n")
: tamOzet;
const listeOzeti = sohbetListeOzeti(tamOzet, kilitli);
const raporParams = rapor.params as RaporParams;
const system = sistemPromptu({