revert: always send full document text in case chat context
Özet-önce yaklaşımı, kullanıcı uzun bir mesaj/belge verdiğinde sohbet ekranında soruna yol açtığı için geri alındı — chatMessage yine her zaman belgelerin tam extracted_text'ini sistem promptuna gömüyor. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
bcc78ce304
commit
ea5211e05d
@@ -3,12 +3,6 @@ import { supabase } from '../lib/supabase';
|
||||
import { AuthenticatedRequest } from '../middleware/auth';
|
||||
import { callOllama, streamOllama, ChatMsg } from '../lib/aiClient';
|
||||
|
||||
// Kullanıcı bir belgenin TAM metnine bakılmasını açıkça istediğinde (örn. "belgenin
|
||||
// tamamına bak", "tam metni incele") sistem promptuna extracted_text'in tamamı
|
||||
// eklenir. Aksi halde sadece analiz özeti (summary_json) gönderilir — hem promptu
|
||||
// küçültüp yanıtı hızlandırır hem gereksiz token maliyetini önler.
|
||||
const FULL_TEXT_TRIGGER = /tam metn|belgenin tamam|dosyanın tamam|tüm metn|tüm belge|belgeyi (baştan sona|detaylı)/i;
|
||||
|
||||
// İlk mesajdan kısa bir başlık üretir (Claude/ChatGPT'nin yaptığı gibi). Başarısız
|
||||
// olursa null döner — çağıran taraf bu durumda varsayılan başlığı korur, asıl
|
||||
// sohbet cevabını etkilemez. Hem dava-dosyası-siz "Yeni Sohbet" (cases.kind='chat')
|
||||
@@ -104,20 +98,12 @@ export const chatMessage = async (req: AuthenticatedRequest, res: Response) => {
|
||||
.order('created_at', { ascending: true })
|
||||
.limit(10);
|
||||
|
||||
// Belge bağlamı: varsayılan olarak sadece dosya adları + analiz özeti gönderilir.
|
||||
// Kullanıcı açıkça tam metni isterse (FULL_TEXT_TRIGGER) extracted_text'lerin
|
||||
// tamamı eklenir. Bu, her mesajda tüm belgelerin tam metnini gömüp promptu
|
||||
// şişirmek yerine, çoğu soruda çok daha küçük ve hızlı bir istek üretir.
|
||||
const wantsFullText = FULL_TEXT_TRIGGER.test(content);
|
||||
// Belge bağlamı: her zaman TAM metin gönderiliyor (özet-önce yaklaşımı, kullanıcı
|
||||
// uzun bir mesaj/belge verdiğinde sohbet ekranında soruna yol açtığı için geri alındı).
|
||||
let documentContext = '';
|
||||
if (documents && documents.length > 0) {
|
||||
if (wantsFullText) {
|
||||
documentContext = '\n\nDOSYAYA AİT BELGELERİN TAM METNİ:\n' +
|
||||
documents.map(d => `--- ${d.filename} ---\n${d.extracted_text}`).join('\n\n');
|
||||
} else {
|
||||
documentContext = '\n\nDOSYAYA AİT BELGELER: ' + documents.map(d => d.filename).join(', ') +
|
||||
'\n(Aşağıda bu belgelerin analiz özeti var. Kullanıcı tam metni isterse — "belgenin tamamına bak" gibi — tam metni isteyebileceğini kendisine hatırlatabilirsin.)';
|
||||
}
|
||||
documentContext = '\n\nDOSYAYA AİT BELGELER:\n' +
|
||||
documents.map(d => `--- ${d.filename} ---\n${d.extracted_text}`).join('\n\n');
|
||||
} else {
|
||||
documentContext = '\n\nBu dosyaya henüz hiçbir belge yüklenmemiştir. Genel hukuki bilgiyle cevap ver, ama bunu kullanıcıya açıkça belirt.';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user