""" 错误码定义(与前端同步) """ # 客户端错误 (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