| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- """
- 错误码定义(与前端同步)
- """
- # 客户端错误 (4xxx)
- class ErrorCode:
- # 客户端错误
- INVALID_MESSAGE = 4000
- INVALID_AUDIO_FORMAT = 4001
- AUDIO_TOO_LARGE = 4002
- RATE_LIMIT_EXCEEDED = 4003
- SESSION_EXPIRED = 4004
- UNAUTHORIZED = 4005
-
- # 服务端错误 (5xxx)
- INTERNAL_ERROR = 5000
- CONNECTION_POOL_EXHAUSTED = 5001
- DOUBAO_API_ERROR = 5002
- DOUBAO_API_TIMEOUT = 5003
- SERVICE_UNAVAILABLE = 5004
- ERROR_MESSAGES = {
- ErrorCode.INVALID_MESSAGE: "消息格式错误",
- ErrorCode.INVALID_AUDIO_FORMAT: "音频格式不支持",
- ErrorCode.AUDIO_TOO_LARGE: "音频数据过大",
- ErrorCode.RATE_LIMIT_EXCEEDED: "请求频率超限",
- ErrorCode.SESSION_EXPIRED: "会话已过期",
- ErrorCode.UNAUTHORIZED: "未授权",
- ErrorCode.INTERNAL_ERROR: "内部服务器错误",
- ErrorCode.CONNECTION_POOL_EXHAUSTED: "服务繁忙,请稍后重试",
- ErrorCode.DOUBAO_API_ERROR: "豆包API错误",
- ErrorCode.DOUBAO_API_TIMEOUT: "豆包API超时",
- ErrorCode.SERVICE_UNAVAILABLE: "服务不可用",
- }
- def get_error_message(code: int) -> str:
- """获取错误消息"""
- return ERROR_MESSAGES.get(code, "未知错误")
- def is_recoverable_error(code: int) -> bool:
- """判断错误是否可恢复"""
- # 客户端错误大部分可恢复
- if 4000 <= code < 5000:
- return code not in [ErrorCode.SESSION_EXPIRED, ErrorCode.UNAUTHORIZED]
- # 服务端错误大部分可恢复
- return code != ErrorCode.SERVICE_UNAVAILABLE
|