fix: raise num_predict for interactive chat to stop mid-sentence cutoffs
800 token sınırı çok düşüktü — çok bölümlü hukuki cevaplar (kira feshi, tazminat hesabı gibi) bu sınıra çarpıp cümlenin ortasında kesiliyordu. Varsayılan ve chatMessage/sendThreadMessage'ın kullandığı num_predict 2048'e çıkarıldı. Ayrıca Ollama done_reason:"length" döndürdüğünde (yanıt sınıra çarpıp kesildiğinde) sunucu loglarına uyarı yazılıyor. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
ea5211e05d
commit
029402a620
+10
-1
@@ -6,7 +6,10 @@ export interface ChatMsg { role: string; content: string; }
|
||||
// davranışı: 5 dakika kullanılmazsa boşalır, sıradaki istek soğuk başlangıç
|
||||
// gecikmesi yaşar) worker'ı bu süre boyunca bellekte tutmasını istiyoruz.
|
||||
const KEEP_ALIVE = '30m';
|
||||
const DEFAULT_NUM_PREDICT = 800;
|
||||
// 800 pratikte çok düşük çıktı — çok bölümlü hukuki cevaplar (kira feshi, tazminat
|
||||
// hesabı gibi) bu sınıra çarpıp cümlenin ortasında kesiliyordu. 2048 hem çoğu cevabı
|
||||
// tam bitirmeye yetiyor hem de modelin sonsuz uzayıp gitmesine karşı hâlâ bir üst sınır.
|
||||
const DEFAULT_NUM_PREDICT = 2048;
|
||||
const DEFAULT_TIMEOUT_MS = 90_000;
|
||||
const DEFAULT_STALL_TIMEOUT_MS = 60_000;
|
||||
|
||||
@@ -104,6 +107,12 @@ export async function streamOllama(
|
||||
full += delta;
|
||||
onToken(delta);
|
||||
}
|
||||
// Ollama son satırda done_reason:"length" döndürürse yanıt num_predict
|
||||
// sınırına çarpıp yarım kesilmiş demektir — sessizce geçmek yerine loglayıp
|
||||
// ileride benzer bir "cevaplar yarım kalıyor" şikayetini hızlı teşhis edebilelim.
|
||||
if (json.done && json.done_reason === 'length') {
|
||||
console.warn('[aiClient] Yanıt num_predict sınırına çarpıp kesildi.');
|
||||
}
|
||||
};
|
||||
|
||||
while (true) {
|
||||
|
||||
Reference in New Issue
Block a user