fix(ai): tadımlık risk notu deterministik + prompt dili
Girişsiz /sonuc tadımlığının riskNotu'su LLM üretimiydi ve DB'den olduğu gibi servis ediliyordu; prompt'u da açıkça "yüksek/orta/düşük ihtimal dili kullan" diyordu. Rozet ise aynı satırda canlı hesaplanıyor → metinle rozet çelişebiliyordu. - tadimlikSec(): riskNotu okuma anında riskNotuMetni(riskHesapla(...) ?? dilimdenRisk(...)) ile üretilir (rozetle aynı formül). DB satırları ve şema değişmez; prod'da havuzu yeniden üretmek gerekmez, /api/tadimlik de kapsanır - tadimlik-uret prompt'u + mock metinleri: ihtimal dili yasaklandı, "son 4 yıl" → "son 5 yıl" (çıktı şeması aynı; script koşulmadı) - danışman sohbeti sistem prompt'u: "ihtimal dili kullan" → olasılık/yüzde/ ihtimal yasak, risk etiketleri + taban sıralarıyla konuş Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -8,6 +8,7 @@ import { turkishSlugify } from "./slug";
|
||||
import type { PuanTuruKey } from "@/types/yokatlas";
|
||||
import type { Dilim } from "./rapor-havuzu";
|
||||
import type { RaporSonuc } from "@/features/rapor/types/rapor";
|
||||
import { dilimdenRisk, riskHesapla, riskNotuMetni } from "./risk";
|
||||
|
||||
/** Sihirbaz kategorisi seçilmemiş kullanıcı için kova×tür başına fallback satır. */
|
||||
export const GENEL_KATEGORI = "genel";
|
||||
@@ -76,13 +77,20 @@ export async function tadimlikSec(
|
||||
),
|
||||
});
|
||||
if (satir) {
|
||||
const program = satir.program as RaporSonuc["programlar"][string];
|
||||
return {
|
||||
programId: satir.programId,
|
||||
dilim: satir.dilim,
|
||||
gerekce: satir.gerekce,
|
||||
riskNotu: satir.riskNotu,
|
||||
// DB'deki riskNotu batch'te LLM'in temsili sıraya göre yazdığı
|
||||
// cümledir; servis EDİLMEZ. Not, rozetle (tadimlik-satiri.tsx) aynı
|
||||
// formülden adayın gerçek sırasına göre okuma anında üretilir — metin
|
||||
// ile rozet çelişemez, olasılık dili sızamaz.
|
||||
riskNotu: riskNotuMetni(
|
||||
riskHesapla(program.efektifSira, sira) ?? dilimdenRisk(satir.dilim),
|
||||
),
|
||||
trendOzeti: satir.trendOzeti,
|
||||
program: satir.program as RaporSonuc["programlar"][string],
|
||||
program,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user