From 942f5ba9e0b622ce15bec361991f56b9f0935bf5 Mon Sep 17 00:00:00 2001 From: sczheng189 <724100151@qq.com> Date: Thu, 21 Aug 2025 15:02:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Djson=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server.py | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/server.py b/server.py index f4966b2..7577fcd 100644 --- a/server.py +++ b/server.py @@ -108,8 +108,8 @@ OPENAI_MODELS = [ # List of Gemini models GEMINI_MODELS = [ - "gemini-2.5-pro-preview-03-25", - "gemini-2.0-flash" + "gemini-2.5-flash", + "gemini-2.5-pro" ] # Helper function to clean schema for Gemini @@ -1320,8 +1320,27 @@ async def create_message( if key not in error_details and key not in ['args', '__traceback__']: error_details[key] = str(value) - # Log all error details - logger.error(f"Error processing request: {json.dumps(error_details, indent=2)}") + # Helper function to safely serialize objects for JSON + def sanitize_for_json(obj): + """递归地清理对象使其可以JSON序列化""" + if isinstance(obj, dict): + return {k: sanitize_for_json(v) for k, v in obj.items()} + elif isinstance(obj, list): + return [sanitize_for_json(item) for item in obj] + elif hasattr(obj, '__dict__'): + return sanitize_for_json(obj.__dict__) + elif hasattr(obj, 'text'): + return str(obj.text) + else: + try: + json.dumps(obj) + return obj + except (TypeError, ValueError): + return str(obj) + + # Log all error details with safe serialization + sanitized_details = sanitize_for_json(error_details) + logger.error(f"Error processing request: {json.dumps(sanitized_details, indent=2)}") # Format error for response error_message = f"Error: {str(e)}"