feat(error_handling): 增强 API 错误处理和日志记录

- 扩展 ErrorLog 数据模型,增加 model_name, error_type, error_code 字段,以记录更详细的错误信息。
- 在 GeminiChatService 和 OpenAIChatService 中添加了 try-except 块,用于捕获 API 调用(包括普通和流式调用)时发生的异常。
- 实现从异常消息中通过正则表达式提取 HTTP 状态码的功能。
- 调用 add_error_log 服务将详细的错误信息(包括模型、错误类型、代码、请求体)持久化到数据库。
- 更新了 error_logs 前端页面,增加显示模型名称列及详情。
- 优化数据库连接池配置 (pool_recycle=3600),提高连接稳定性。
This commit is contained in:
snaily
2025-04-10 15:40:02 +08:00
parent 0f28173b0e
commit d94d24f96c
7 changed files with 103 additions and 10 deletions

View File

@@ -22,8 +22,9 @@ metadata = MetaData()
# 创建基类
Base = declarative_base(metadata=metadata)
# 创建数据库连接池
database = Database(DATABASE_URL)
# 创建数据库连接池,并配置连接池参数
# pool_recycle=3600: 回收空闲超过1小时的连接防止MySQL服务器超时断开
database = Database(DATABASE_URL, min_size=5, max_size=20, pool_recycle=3600)
async def connect_to_db():