From 36654a6fa3af29ca9043eda79489d9597446c9a2 Mon Sep 17 00:00:00 2001 From: 134 Date: Fri, 12 Jun 2026 10:43:13 +0800 Subject: [PATCH] tune grsai gpt image health handling --- lib/ai/providers/gemini-image.ts | 7 ++++++- lib/ai/runtime/model-health.ts | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/ai/providers/gemini-image.ts b/lib/ai/providers/gemini-image.ts index 98cc368c4..1dc5c0e76 100644 --- a/lib/ai/providers/gemini-image.ts +++ b/lib/ai/providers/gemini-image.ts @@ -533,6 +533,8 @@ function formatImageResponse( const GRSAI_NANO_BANANA_SUBMIT_TIMEOUT_MS = 30000; const GRSAI_NANO_BANANA_POLL_TIMEOUT_MS = 30000; const GRSAI_NANO_BANANA_POLL_INTERVAL_MS = 5000; +const GRSAI_GPT_IMAGE_TIMEOUT_MS = 300000; +const GRSAI_GPT_IMAGE_4K_TIMEOUT_MS = 420000; function isRecord(value: unknown): value is Record { return Boolean(value && typeof value === "object" && !Array.isArray(value)); @@ -1003,7 +1005,10 @@ async function sendGeminiRequest( `${apiLogPrefix} Resolved size: aspectRatio=${resolvedAspectRatio}, imageSize=${imageParams?.imageSize || "2K"} => ${resolvedSize}` ); - const timeout = imageParams?.imageSize === "4K" ? 300000 : 120000; + const timeout = + imageParams?.imageSize === "4K" + ? GRSAI_GPT_IMAGE_4K_TIMEOUT_MS + : GRSAI_GPT_IMAGE_TIMEOUT_MS; logger.debug(`${apiLogPrefix} Timeout set to ${timeout / 1000} seconds for ${imageParams?.imageSize || "default"}`); return sendGrsaiGptImageRequest({ baseURL, diff --git a/lib/ai/runtime/model-health.ts b/lib/ai/runtime/model-health.ts index 28a3a7a7a..5b8585c69 100644 --- a/lib/ai/runtime/model-health.ts +++ b/lib/ai/runtime/model-health.ts @@ -70,6 +70,7 @@ export function classifyAiModelHealthFailure(error: unknown): { if ( normalized.includes("生成结果未通过替换质检") || + normalized.includes("output_moderation") || normalized.includes("quality check") || normalized.includes("review result") || normalized.includes("content policy") ||