130 lines
3.6 KiB
Python
130 lines
3.6 KiB
Python
from enum import IntEnum
|
||
|
||
|
||
class BizCode(IntEnum):
|
||
# 通用(1xxx)
|
||
OK = 0
|
||
BAD_REQUEST = 1000
|
||
VALIDATION_FAILED = 1001
|
||
MISSING_PARAMETER = 1002
|
||
INVALID_PARAMETER = 1003
|
||
# 认证/鉴权(2xxx/3xxx)
|
||
UNAUTHORIZED = 2001
|
||
TOKEN_INVALID = 2002
|
||
TOKEN_EXPIRED = 2003
|
||
TOKEN_BLACKLISTED = 2004
|
||
PASSWORD_ERROR = 2005
|
||
LOGIN_FAILED = 2006
|
||
FORBIDDEN = 3001
|
||
TENANT_NOT_FOUND = 3002
|
||
WORKSPACE_NO_ACCESS = 3003
|
||
WORKSPACE_INVITE_NOT_FOUND = 3004
|
||
# 资源(4xxx)
|
||
NOT_FOUND = 4000
|
||
USER_NOT_FOUND = 4001
|
||
WORKSPACE_NOT_FOUND = 4002
|
||
MODEL_NOT_FOUND = 4003
|
||
KNOWLEDGE_NOT_FOUND = 4004
|
||
DOCUMENT_NOT_FOUND = 4005
|
||
FILE_NOT_FOUND = 4006
|
||
APP_NOT_FOUND = 4007
|
||
RELEASE_NOT_FOUND = 4008
|
||
|
||
# 冲突/状态(5xxx)
|
||
DUPLICATE_NAME = 5001
|
||
RESOURCE_ALREADY_EXISTS = 5002
|
||
VERSION_ALREADY_EXISTS = 5003
|
||
STATE_CONFLICT = 5004
|
||
|
||
# 应用发布(6xxx)
|
||
PUBLISH_FAILED = 6001
|
||
NO_DRAFT_TO_PUBLISH = 6002
|
||
ROLLBACK_TARGET_NOT_FOUND = 6003
|
||
APP_TYPE_NOT_SUPPORTED = 6004
|
||
AGENT_CONFIG_MISSING = 6005
|
||
SHARE_DISABLED = 6006
|
||
INVALID_PASSWORD = 6007
|
||
PASSWORD_REQUIRED = 6008
|
||
EMBED_NOT_ALLOWED = 6009
|
||
PERMISSION_DENIED = 6010
|
||
INVALID_CONVERSATION = 6011
|
||
|
||
# 模型(7xxx)
|
||
MODEL_CONFIG_INVALID = 7001
|
||
API_KEY_MISSING = 7002
|
||
PROVIDER_NOT_SUPPORTED = 7003
|
||
LLM_ERROR = 7004
|
||
EMBEDDING_ERROR = 7005
|
||
|
||
# 文件/解析(8xxx)
|
||
FILE_READ_ERROR = 8001
|
||
PARSER_NOT_SUPPORTED = 8002
|
||
CHUNKING_FAILED = 8003
|
||
|
||
# RAG/知识(9xxx)
|
||
INDEX_BUILD_FAILED = 9001
|
||
EMBEDDING_FAILED = 9002
|
||
SEARCH_FAILED = 9003
|
||
|
||
# 系统(100xx)
|
||
INTERNAL_ERROR = 10001
|
||
DB_ERROR = 10002
|
||
SERVICE_UNAVAILABLE = 10003
|
||
RATE_LIMITED = 10004
|
||
|
||
|
||
# 建议的HTTP状态映射(如需在异常处理器中使用)
|
||
HTTP_MAPPING = {
|
||
BizCode.OK: 200,
|
||
BizCode.LOGIN_FAILED: 200,
|
||
BizCode.BAD_REQUEST: 400,
|
||
BizCode.VALIDATION_FAILED: 400,
|
||
BizCode.MISSING_PARAMETER: 400,
|
||
BizCode.INVALID_PARAMETER: 400,
|
||
BizCode.UNAUTHORIZED: 401,
|
||
BizCode.TOKEN_INVALID: 401,
|
||
BizCode.TOKEN_EXPIRED: 401,
|
||
BizCode.TOKEN_BLACKLISTED: 401,
|
||
BizCode.FORBIDDEN: 403,
|
||
BizCode.TENANT_NOT_FOUND: 404,
|
||
BizCode.WORKSPACE_NO_ACCESS: 403,
|
||
BizCode.NOT_FOUND: 404,
|
||
BizCode.USER_NOT_FOUND: 200,
|
||
BizCode.WORKSPACE_NOT_FOUND: 404,
|
||
BizCode.MODEL_NOT_FOUND: 404,
|
||
BizCode.KNOWLEDGE_NOT_FOUND: 404,
|
||
BizCode.DOCUMENT_NOT_FOUND: 404,
|
||
BizCode.FILE_NOT_FOUND: 404,
|
||
BizCode.APP_NOT_FOUND: 404,
|
||
BizCode.RELEASE_NOT_FOUND: 404,
|
||
BizCode.DUPLICATE_NAME: 409,
|
||
BizCode.RESOURCE_ALREADY_EXISTS: 409,
|
||
BizCode.VERSION_ALREADY_EXISTS: 409,
|
||
BizCode.STATE_CONFLICT: 409,
|
||
BizCode.PUBLISH_FAILED: 500,
|
||
BizCode.NO_DRAFT_TO_PUBLISH: 400,
|
||
BizCode.ROLLBACK_TARGET_NOT_FOUND: 404,
|
||
BizCode.APP_TYPE_NOT_SUPPORTED: 400,
|
||
BizCode.AGENT_CONFIG_MISSING: 400,
|
||
BizCode.SHARE_DISABLED: 403,
|
||
BizCode.INVALID_PASSWORD: 401,
|
||
BizCode.PASSWORD_REQUIRED: 401,
|
||
BizCode.EMBED_NOT_ALLOWED: 403,
|
||
BizCode.PERMISSION_DENIED: 403,
|
||
BizCode.INVALID_CONVERSATION: 400,
|
||
BizCode.MODEL_CONFIG_INVALID: 400,
|
||
BizCode.API_KEY_MISSING: 400,
|
||
BizCode.PROVIDER_NOT_SUPPORTED: 400,
|
||
BizCode.LLM_ERROR: 500,
|
||
BizCode.EMBEDDING_ERROR: 500,
|
||
BizCode.FILE_READ_ERROR: 500,
|
||
BizCode.PARSER_NOT_SUPPORTED: 400,
|
||
BizCode.CHUNKING_FAILED: 500,
|
||
BizCode.INDEX_BUILD_FAILED: 500,
|
||
BizCode.EMBEDDING_FAILED: 500,
|
||
BizCode.SEARCH_FAILED: 500,
|
||
BizCode.INTERNAL_ERROR: 500,
|
||
BizCode.DB_ERROR: 500,
|
||
BizCode.SERVICE_UNAVAILABLE: 503,
|
||
BizCode.RATE_LIMITED: 429,
|
||
} |