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") ||