fix(danisman): H3 (3) — bedelsiz onay yolu yalnız gerçek onayda açılsın [KARAR]

Onay mesajı artık baştan sona evet/hayır sözlerinden oluşmalı; "evet. <gerçek
soru>" normal (kredili) soru sayılır, 0 kredide 402 döner. "Profil onayı
kredi harcamaz" kararı (26 Eyl) gerçek onay için aynen duruyor.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
bilalgursen
2026-10-05 01:06:01 +03:00
parent 08f4ec22b0
commit 3f1e770013
2 changed files with 40 additions and 17 deletions

View File

@@ -27,3 +27,42 @@ export function modelPenceresi(gecmis: SohbetMesaji[], yeniSoru: string): Sohbet
}
return gruplar.map((g) => ({ role: g.role, content: g.parcalar.join("\n\n") }));
}
/** Danışmanın onay sorusunda geçen sabit ibare; istemci de bunu görmez, yalnız sunucu arar. */
const ONAY_SORUSU = "profiline kaydedeyim mi";
const ONAY_SOZLERI = [
"evet",
"olur",
"tamam",
"kaydet",
"kaydedebilirsin",
"kaydedelim",
"hayır",
"hayir",
"yok",
"kaydetme",
"gerek yok",
"istemiyorum",
"şimdilik hayır",
];
/** Onay sözünün ardından gelebilecek dolgu; bunların dışındaki her kelime mesajı soru yapar. */
const ONAY_DOLGU = [...ONAY_SOZLERI, "bunu", "lütfen", "lutfen", "teşekkürler", "tesekkurler", "teşekkür ederim", "sağ ol"];
const ONAY_KALIBI = new RegExp(`^(?:${ONAY_SOZLERI.join("|")})(?: (?:${ONAY_DOLGU.join("|")}))*$`);
/**
* Onay mesajı mı: son danışman mesajı "kaydedeyim mi?" diye sormuş VE adayın
* mesajı BAŞTAN SONA evet/hayır sözlerinden oluşuyor. Bu mesaj kredi harcamaz
* (Bilal, 26 Eyl 2026). Yalnız başına bakmak yetmiyordu: "evet. Ege hukuk
* taban sırası kaç?" kredisiz tam cevap alıyordu. Kalıba uymayan mesaj
* normal (kredili) soru sayılır.
*/
export function onayMesajiMi(mesaj: string, sonAsistan: string | undefined): boolean {
if (!sonAsistan || !sonAsistan.toLocaleLowerCase("tr-TR").includes(ONAY_SORUSU)) return false;
const m = mesaj
.toLocaleLowerCase("tr-TR")
.replace(/[.,!?;:…'"()]+/g, " ")
.replace(/\s+/g, " ")
.trim();
return ONAY_KALIBI.test(m);
}