Merge pull request #356 from SaigyoujiYusora/debug-fix-log

fix: 优化发送错误时图片大喷射
This commit is contained in:
SengokuCola
2025-03-14 08:35:12 +08:00
committed by GitHub

View File

@@ -254,7 +254,8 @@ class LLM_request:
content = re.sub(r'<think>.*?</think>', '', content, flags=re.DOTALL).strip() content = re.sub(r'<think>.*?</think>', '', content, flags=re.DOTALL).strip()
# 构造一个伪result以便调用自定义响应处理器或默认处理器 # 构造一个伪result以便调用自定义响应处理器或默认处理器
result = { result = {
"choices": [{"message": {"content": content, "reasoning_content": reasoning_content}}], "usage": usage} "choices": [{"message": {"content": content, "reasoning_content": reasoning_content}}],
"usage": usage}
return response_handler(result) if response_handler else self._default_response_handler( return response_handler(result) if response_handler else self._default_response_handler(
result, user_id, request_type, endpoint) result, user_id, request_type, endpoint)
else: else:
@@ -270,6 +271,9 @@ class LLM_request:
await asyncio.sleep(wait_time) await asyncio.sleep(wait_time)
else: else:
logger.critical(f"请求失败: {str(e)}") logger.critical(f"请求失败: {str(e)}")
if image_base64:
payload["messages"][0]["content"][1]["image_url"][
"url"] = f"data:image/{image_format.lower()};base64,{image_base64[:10]}...{image_base64[-10:]}"
logger.critical(f"请求头: {await self._build_headers(no_key=True)} 请求体: {payload}") logger.critical(f"请求头: {await self._build_headers(no_key=True)} 请求体: {payload}")
raise RuntimeError(f"API请求失败: {str(e)}") raise RuntimeError(f"API请求失败: {str(e)}")
@@ -307,7 +311,8 @@ class LLM_request:
"role": "user", "role": "user",
"content": [ "content": [
{"type": "text", "text": prompt}, {"type": "text", "text": prompt},
{"type": "image_url", "image_url": {"url": f"data:image/{image_format.lower()};base64,{image_base64}"}} {"type": "image_url",
"image_url": {"url": f"data:image/{image_format.lower()};base64,{image_base64}"}}
] ]
} }
], ],
@@ -452,6 +457,7 @@ class LLM_request:
) )
return embedding return embedding
def compress_base64_image_by_scale(base64_data: str, target_size: int = 0.8 * 1024 * 1024) -> str: def compress_base64_image_by_scale(base64_data: str, target_size: int = 0.8 * 1024 * 1024) -> str:
"""压缩base64格式的图片到指定大小 """压缩base64格式的图片到指定大小
Args: Args:
@@ -525,4 +531,3 @@ def compress_base64_image_by_scale(base64_data: str, target_size: int = 0.8 * 10
import traceback import traceback
logger.error(traceback.format_exc()) logger.error(traceback.format_exc())
return base64_data return base64_data