refactor(api): 优化错误处理和日志记录

对多个模块进行了重构,以改进错误处理和日志记录机制。

主要变更包括:
- 在 `gemini_routes` 中,现在会返回更具体的错误信息,包括错误码和错误消息,而不仅仅是异常的字符串表示。
- 在 `api_client` 中,简化了 Gemini API 客户端的错误处理逻辑,移除了冗余的 `try...except` 块,让异常直接向上抛出。
- 在多个服务(如 `openai_chat_service`, `embedding_service`, `tts_service` 等)中,增加了根据配置项 `ERROR_LOG_RECORD_REQUEST_BODY` 来决定是否记录请求体的逻辑,以增强隐私和性能控制。
- 在前端 `keys_status.js` 中,更新了密钥验证结果的处理逻辑,以适应后端返回的新的错误对象结构(包含 `error_code` 和 `error_message`),并移除了冗余的 `executeVerifyAllKeys` 函数。
This commit is contained in:
snaily
2025-09-18 09:59:32 +08:00
parent 68b65814bc
commit 95b5acad66
8 changed files with 103 additions and 195 deletions
+3 -8
View File
@@ -515,7 +515,7 @@ async def verify_key(
f"Verification exception for key: {redact_key_for_logging(api_key)}, incrementing failure count"
)
return JSONResponse({"status": "invalid", "error": str(e)})
return JSONResponse({"status": "invalid", "error": e.args[1]})
@router.post("/verify-selected-keys")
@@ -559,7 +559,7 @@ async def verify_selected_keys(
await key_manager.reset_key_failure_count(api_key)
return api_key, "valid", None
except Exception as e:
error_message = str(e)
error_message = e.args[1]
logger.warning(
f"Key verification failed for {redact_key_for_logging(api_key)}: {error_message}"
)
@@ -574,7 +574,7 @@ async def verify_selected_keys(
logger.warning(
f"Bulk verification exception for key: {redact_key_for_logging(api_key)}, initializing failure count to 1"
)
failed_keys[api_key] = error_message
failed_keys[api_key] = {"error_message": e.args[1], "error_code": e.args[0]}
return api_key, "invalid", error_message
tasks = [_verify_single_key(key) for key in keys_to_verify]
@@ -585,11 +585,6 @@ async def verify_selected_keys(
logger.error(
f"An unexpected error occurred during bulk verification task: {result}"
)
elif result:
if not isinstance(result, Exception) and result:
key, status, error = result
elif isinstance(result, Exception):
logger.error(f"Task execution error during bulk verification: {result}")
valid_count = len(successful_keys)
invalid_count = len(failed_keys)