From affc689724b49bebde7ec6e11a25d1e594851eff Mon Sep 17 00:00:00 2001 From: shiyue Date: Thu, 12 Mar 2026 02:08:04 +0000 Subject: [PATCH] fix: handle grok2 synchronous video response, skip async polling --- src/lib/model-gateway/openai-compat/video.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/lib/model-gateway/openai-compat/video.ts b/src/lib/model-gateway/openai-compat/video.ts index f20cf13..491ffce 100644 --- a/src/lib/model-gateway/openai-compat/video.ts +++ b/src/lib/model-gateway/openai-compat/video.ts @@ -176,6 +176,15 @@ export async function generateVideoViaOpenAICompat(request: OpenAICompatVideoReq input_reference: inputReference, } as Parameters[0]) + // 同步完成的情况(如 grok2api):响应里直接携带 url 和 status=completed + const rawResponse = response as unknown as Record + if (rawResponse.status === 'completed' && typeof rawResponse.url === 'string' && rawResponse.url) { + return { + success: true, + videoUrl: rawResponse.url as string, + } + } + if (!response.id || typeof response.id !== 'string') { throw new Error('OPENAI_COMPAT_VIDEO_CREATE_INVALID_RESPONSE: missing video id') }