mirror of
https://github.com/snailyp/gemini-balance.git
synced 2026-09-06 08:06:37 +08:00
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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user