Pin durable AI source text and requirements across retries

This commit is contained in:
2026-09-06 12:42:16 +03:00
parent 801d4fca8d
commit ca0ed73242
6 changed files with 86 additions and 15 deletions
+4 -3
View File
@@ -1,3 +1,4 @@
import { resolveAiJobInput } from './ai-job-source.mjs';
import * as aiJobs from './ai-job-store.mjs';
import { startAiJobRunner } from './ai-job-runner.mjs';
import { observeTenders, tenderHistory } from './tender-history.mjs';
@@ -55,7 +56,7 @@ import { searchKik, kararMetni } from './kik.mjs';
import { documentUrl, ilanMetni, documentText, browserAvailable } from './documents.mjs';
import { ihaleRss, sonucRss, mcpIstek, yaklasanIhaleler } from './feeds-mcp.mjs';
import { briefOlustur, briefMetni, haftalikBriefGonder } from './brief.mjs';
import { belgeyeSor, teklifDenetle, teklifTaslak } from './ai-teklif.mjs';
import { belgeyeSor, teklifDenetle, teklifTaslak, ihaleMetni, gereklilikMetni } from './ai-teklif.mjs';
import { subscribe, list as listSubs, remove as removeSub, available as notifyAvailable } from './notify-store.mjs';
import { bildirimleriIsle } from './notifier.mjs';
import { scanSite } from './site-scan.mjs';
@@ -688,8 +689,8 @@ async function tendersPayload(force = false) {
const aiJobRunner = startAiJobRunner(async (job,{signal}) => {
if(!aiConfigured())throw new Error('AI hizmeti kullanılamıyor. Ayarlar düzeltildikten sonra yeniden başlatın.');
const body=job.input;
const shared={signal,ikn:body.ikn,tender:body.tender,chain:body.chain,text:body.text};
const body=await resolveAiJobInput(job,ihaleMetni,aiJobs.pinAiJobInput,signal,input=>gereklilikMetni(input.tender,input.gereklilikler,'',true));
const shared={signal,ikn:body.ikn,tender:body.tender,chain:body.chain,text:body.text,resolvedSource:body.resolvedSource};
const result=job.operation==='belge-sor' ? await belgeyeSor({...shared,soru:body.soru})
: job.operation==='teklif-denetim' ? await teklifDenetle({...shared,taslak:body.taslak,gereklilikler:body.gereklilikler})
: await teklifTaslak({...shared,tur:body.tur,firma:body.firma,belgeler:body.belgeler,fiyat:body.fiyat,gereklilikler:body.gereklilikler});