From 7bf3b6a409c50e1fd10a52510c9922cafc62f754 Mon Sep 17 00:00:00 2001 From: weeihan Date: Sun, 26 Jul 2026 10:17:26 +0800 Subject: [PATCH] fix: rename deepseek model from deepseek-chat to deepseek-v4-pro DeepSeek API deprecated deepseek-chat model. Returns error: 'the supported API model names are deepseek-v4-pro or deepseek-v4-flash' Affected all 4 AI endpoints: - risk-flags (90-day dashboard) - triage-suggest - rca-draft - quality-check Co-Authored-By: Claude --- app/api/dashboard/ai/risk-flags/route.ts | 4 ++-- app/api/incidents/[id]/ai/rca-draft/route.ts | 4 ++-- app/api/incidents/[id]/ai/triage-suggest/route.ts | 4 ++-- app/api/incidents/ai/quality-check/route.ts | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/api/dashboard/ai/risk-flags/route.ts b/app/api/dashboard/ai/risk-flags/route.ts index a9547d8..c9b3f1e 100644 --- a/app/api/dashboard/ai/risk-flags/route.ts +++ b/app/api/dashboard/ai/risk-flags/route.ts @@ -109,7 +109,7 @@ export async function POST() { let res: Awaited> try { res = await client.chat.completions.create({ - model: 'deepseek-chat', + model: 'deepseek-v4-pro', max_tokens: 2048, tools: [{ type: 'function', @@ -178,7 +178,7 @@ ${JSON.stringify(aggregates, null, 2)} await withUser(session.sub, async tx => writeAuditLog(tx, 'incidents', session.sub, 'ai_risk_flags', - { flags, summary: input.summary, model: 'deepseek-chat' }) + { flags, summary: input.summary, model: 'deepseek-v4-pro' }) ) return NextResponse.json({ flags, summary: input.summary }) diff --git a/app/api/incidents/[id]/ai/rca-draft/route.ts b/app/api/incidents/[id]/ai/rca-draft/route.ts index 7c6bde0..45901a2 100644 --- a/app/api/incidents/[id]/ai/rca-draft/route.ts +++ b/app/api/incidents/[id]/ai/rca-draft/route.ts @@ -59,7 +59,7 @@ export async function POST( let res: Awaited> try { res = await client.chat.completions.create({ - model: 'deepseek-chat', + model: 'deepseek-v4-pro', max_tokens: 2048, tools: [{ type: 'function', @@ -135,7 +135,7 @@ Provide 3–5 Why steps drilling from immediate cause to root cause. Give a one- await withUser(session.sub, async tx => { await writeAuditLog(tx, 'incidents', id, 'ai_rca_draft', { root_cause_summary: draft.root_cause_summary as string, - model: 'deepseek-chat', + model: 'deepseek-v4-pro', }) }) diff --git a/app/api/incidents/[id]/ai/triage-suggest/route.ts b/app/api/incidents/[id]/ai/triage-suggest/route.ts index c46607d..ffa05a8 100644 --- a/app/api/incidents/[id]/ai/triage-suggest/route.ts +++ b/app/api/incidents/[id]/ai/triage-suggest/route.ts @@ -50,7 +50,7 @@ export async function POST( let res: Awaited> try { res = await client.chat.completions.create({ - model: 'deepseek-chat', + model: 'deepseek-v4-pro', max_tokens: 1024, tools: [{ type: 'function', @@ -118,7 +118,7 @@ Suggest severity (1–5) and tick the appropriate NADOPOD 2004 flags. Give a one } await withUser(session.sub, async tx => { - await writeAuditLog(tx, 'incidents', id, 'ai_triage_suggest', { suggestion: input, model: 'deepseek-chat' }) + await writeAuditLog(tx, 'incidents', id, 'ai_triage_suggest', { suggestion: input, model: 'deepseek-v4-pro' }) }) return NextResponse.json(input) diff --git a/app/api/incidents/ai/quality-check/route.ts b/app/api/incidents/ai/quality-check/route.ts index dfdb562..67fc5f2 100644 --- a/app/api/incidents/ai/quality-check/route.ts +++ b/app/api/incidents/ai/quality-check/route.ts @@ -42,7 +42,7 @@ export async function POST(request: NextRequest) { let res: Awaited> try { res = await client.chat.completions.create({ - model: 'deepseek-chat', + model: 'deepseek-v4-pro', max_tokens: 1024, tools: [{ type: 'function', @@ -99,7 +99,7 @@ Score 1–10 based on: specificity (location, time, persons involved), completen // audit write uses session.sub as a pseudo record-id (no incident_id at this stage) await withUser(session.sub, async tx => { await writeAuditLog(tx, 'incidents', session.sub, 'ai_quality_check', { - score: input.score, passes: input.passes, model: 'deepseek-chat', + score: input.score, passes: input.passes, model: 'deepseek-v4-pro', }) })