From c372f1fc113f6940ee8c40b962a398000741195a Mon Sep 17 00:00:00 2001 From: xiaoxi68 <3520824673@qq.com> Date: Thu, 20 Nov 2025 22:53:17 +0800 Subject: [PATCH] =?UTF-8?q?fix(openai=5Fclient):=20=E8=A7=84=E8=8C=83?= =?UTF-8?q?=E5=9B=BE=E7=89=87=20MIME=20=E5=90=8E=E7=BC=80=E4=B8=BA?= =?UTF-8?q?=E6=A0=87=E5=87=86=20jpeg?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/llm_models/model_client/openai_client.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/llm_models/model_client/openai_client.py b/src/llm_models/model_client/openai_client.py index f573d33e..ba201d98 100644 --- a/src/llm_models/model_client/openai_client.py +++ b/src/llm_models/model_client/openai_client.py @@ -61,10 +61,16 @@ def _convert_messages(messages: list[Message]) -> list[ChatCompletionMessagePara content = [] for item in message.content: if isinstance(item, tuple): + # 规范化常见非标准后缀为标准 MIME(修复 image/jpg 在部分提供商不被接受的问题) + _fmt = str(item[0]).lower() + b64_data = item[1] + if _fmt in {"jpg", "jpe", "jfif"}: + _fmt = "jpeg" + # GIF 等其他格式保持原样 content.append( { "type": "image_url", - "image_url": {"url": f"data:image/{item[0].lower()};base64,{item[1]}"}, + "image_url": {"url": f"data:image/{_fmt};base64,{b64_data}"}, } ) elif isinstance(item, str):