From 699bc0828b72e882661287887143eb70bc840a01 Mon Sep 17 00:00:00 2001 From: XianYuDaXian Date: Fri, 13 Mar 2026 21:31:08 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E8=A7=86=E9=A2=91=20?= =?UTF-8?q?API=20=E5=A4=9A=E5=9B=BE=E5=8F=82=E8=80=83=E8=BE=93=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/v1/chat.py | 7 +++++++ app/services/grok/services/video.py | 11 +++++++++++ 2 files changed, 18 insertions(+) diff --git a/app/api/v1/chat.py b/app/api/v1/chat.py index fdcd8ba..693e534 100644 --- a/app/api/v1/chat.py +++ b/app/api/v1/chat.py @@ -625,6 +625,13 @@ def validate_request(request: ChatCompletionRequest): # video 验证 if model_info and model_info.is_video: config = request.video_config or VideoConfig() + _, image_urls = _extract_prompt_images(request.messages) + if len(image_urls) > 7: + raise ValidationException( + message="Too many image_url references for video. Maximum is 7.", + param="messages", + code="invalid_image_count", + ) effective_stream = ( request.stream if request.stream is not None else get_config("app.stream") ) diff --git a/app/services/grok/services/video.py b/app/services/grok/services/video.py index ea16c67..57961db 100644 --- a/app/services/grok/services/video.py +++ b/app/services/grok/services/video.py @@ -1092,6 +1092,17 @@ class VideoService: parent_post_id = (parent_post_id or "").strip() or None source_image_url = (source_image_url or "").strip() reference_items = [item for item in (reference_items or []) if isinstance(item, dict)] + if image_attachments and not reference_items: + reference_items = [ + { + "parent_post_id": "", + "image_url": str(image_url or "").strip(), + "source_image_url": str(image_url or "").strip(), + "mention_alias": f"Image {index}", + } + for index, image_url in enumerate(image_attachments, start=1) + if str(image_url or "").strip() + ] used_tokens: set[str] = set() for attempt in range(max_token_retries):