feat: Gemini Flash ücretli yedek — analiz zincirinin sonunda her zaman denenir
Panelde seçilen modeller tıkanınca (limit/429) şartname analizi ve teklif asistanı boş kalıyordu; analyzeSpec zincire yoksa 'gemini'yi sona ekler. Panel ve kılavuz notu. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
+6
-1
@@ -314,8 +314,13 @@ function kesikJsonOnar(s) {
|
||||
/** Zinciri sırayla dener; ilk başarılı sonucu döndürür. */
|
||||
export async function analyzeSpec({ text, fileName, tender, chain, systemOverride, mode }) {
|
||||
const derin = mode === 'derin';
|
||||
const order = (Array.isArray(chain) && chain.length ? chain : ['glmflash', 'gemini', 'deepseek', 'grok', 'gpt', 'claude'])
|
||||
// Ücretli yedek: Gemini Flash her zaman zincirin sonunda. Panelde seçilen
|
||||
// modeller (ör. ücretsiz/limitli olanlar) tıkanınca analiz boş kalmasın;
|
||||
// yalnız üsttekilerin hepsi başarısız olursa devreye girer.
|
||||
const YEDEK = 'gemini';
|
||||
const secim = (Array.isArray(chain) && chain.length ? chain : ['glmflash', 'gemini', 'deepseek', 'grok', 'gpt', 'claude'])
|
||||
.filter((id) => PROVIDERS[id]);
|
||||
const order = secim.includes(YEDEK) ? secim : [...secim, YEDEK];
|
||||
// Derin analiz hem daha çok metin okur hem daha uzun JSON üretir; çıktı
|
||||
// kesilirse JSON parse edilemez ve zincir boşuna tüketilir.
|
||||
const userPrompt = buildUserPrompt({ text, fileName, tender, limit: derin ? 90000 : 60000 });
|
||||
|
||||
Reference in New Issue
Block a user