This commit is contained in:
mstfyldz
2026-08-11 16:27:02 +03:00
parent 6bd6da3776
commit 05fcc00de9
3 changed files with 86 additions and 2 deletions
+32
View File
@@ -57,6 +57,32 @@ const CASE_NARRATIVE_SYSTEM_PROMPT = `
veya başka bir açıklama ekleme.
`;
const STATEMENT_ANALYSIS_SYSTEM_PROMPT = `
Sen uzman bir Türk ceza avukatısın. Sana bir dava dosyasındaki "ifade", "sorgu" veya "beyan" içeren çeşitli belgelerin metinleri verilecek.
Amacın, bu belgelerdeki kişi beyanlarını analiz edip "Yalan Dedektörü" mantığıyla çelişkileri bulmaktır.
Çıktıyı KESİNLİKLE geçerli bir JSON formatında vermelisin. JSON yapısı tam olarak şu şekilde olmalıdır:
{
"persons": [
{
"name": "Kişinin Adı Soyadı",
"role": "Müşteki, Şüpheli, Sanık, Tanık vb.",
"statements": [
{
"stage": "Karakol / Savcılık / Mahkeme / Diğer",
"summary": "Bu aşamadaki beyanının çok kısa özeti"
}
],
"contradictions": [
"Eğer aynı kişinin farklı aşamalardaki ifadelerinde veya somut delillerle çelişen bir durumu varsa buraya yaz. Yoksa boş bırak."
]
}
]
}
Sadece ve sadece JSON döndür, kod bloğu işareti (\`\`\`) veya başka bir açıklama ekleme.
`;
async function callAiModel(systemPrompt: string, userText: string): Promise<{ resultJson: any; aiModel: string }> {
const { aiContent, aiModel } = await callAiModelRaw(systemPrompt, userText);
let resultJson: any = {};
@@ -97,6 +123,12 @@ export async function runCaseNarrativeAnalysis(combinedText: string): Promise<{
return { summaryJson: { ozet: aiContent }, aiModel };
}
// Yeni İfade Analizi ve Çelişki Avcısı adımı
export async function runStatementAnalysis(combinedText: string): Promise<{ summaryJson: any; aiModel: string }> {
const { resultJson, aiModel } = await callAiModel(STATEMENT_ANALYSIS_SYSTEM_PROMPT, combinedText);
return { summaryJson: resultJson, aiModel };
}
// UYAP Evrak İndirici eklentisinden gelen, Electron ana sürecinde YERELDE metni
// çıkarılmış belgeleri kaydeder. Ham dosya baytları bu isteğe hiç dahil değil —
// sadece çıkarılan metin (JSON) geliyor, Supabase Storage'a hiçbir yükleme yapılmıyor.