Spaces:
Paused
Paused
| import time | |
| from fastapi import status | |
| from fastapi.responses import JSONResponse | |
| def create_chat_response(model: str, choices: list, id: str = None): | |
| """创建标准响应对象的工厂函数""" | |
| return { | |
| "id": id or f"chatcmpl-{int(time.time()*1000)}", | |
| "object": "chat.completion", | |
| "created": int(time.time()), | |
| "model": model, | |
| "choices": choices, | |
| "usage": { | |
| "prompt_tokens": 0, | |
| "completion_tokens": 0, | |
| "total_tokens": 0 | |
| } | |
| } | |
| def create_error_response(model: str, error_message: str): | |
| """创建错误响应对象的工厂函数""" | |
| return create_chat_response( | |
| model=model, | |
| choices=[{ | |
| "index": 0, | |
| "message": { | |
| "role": "assistant", | |
| "content": error_message | |
| }, | |
| "finish_reason": "error" | |
| }] | |
| ) | |
| def create_response(chat_request, response_content): | |
| """创建标准响应对象但不缓存""" | |
| # 创建响应对象 | |
| return create_chat_response( | |
| model=chat_request.model, | |
| choices=[{ | |
| "index": 0, | |
| "message": { | |
| "role": "assistant", | |
| "content": response_content.text | |
| }, | |
| "finish_reason": "stop" | |
| }] | |
| ) | |
| def handle_exception(exc_type, exc_value, exc_traceback, translate_error, log): | |
| """处理全局异常的函数""" | |
| if issubclass(exc_type, KeyboardInterrupt): | |
| # 对于KeyboardInterrupt,使用默认处理 | |
| import sys | |
| sys.excepthook(exc_type, exc_value, exc_traceback) | |
| return | |
| # 对于其他异常,记录日志 | |
| error_message = translate_error(str(exc_value)) | |
| log('error', f"未捕获的异常: {error_message}", status_code=500, error_message=error_message) |