maga_transformer/config/exceptions.py (63 lines of code) (raw):
from enum import IntEnum
class ExceptionType(IntEnum):
# Old error codes, remain compatible
CONCURRENCY_LIMIT_ERROR = 409
CANCELLED_ERROR = 499
ERROR_INPUT_FORMAT_ERROR = 507
NO_PROMPT_ERROR = 509
EMPTY_PROMPT_ERROR = 510
LONG_PROMPT_ERROR = 511
UNKNOWN_ERROR = 514
UNSUPPORTED_OPERATION = 515
UPDATE_ERROR = 601
MALLOC_ERROR = 602
GENERATE_TIMEOUT = 603
ERROR_GENERATE_CONFIG_FORMAT = 604
INVALID_PARAMS = 605
EXECUTION_EXCEPTION = 606
# Error codes starting from 8000 can be retried
CANCELLED = 8100
OUT_OF_VOCAB_RANGE = 8101
OUTPUT_QUEUE_FULL = 8102
OUTPUT_QUEUE_IS_EMPTY = 8103
FINISHED = 8104
EXCEEDS_KV_CACHE_MAX_LEN = 8105
# rpc error
GET_HOST_FAILED = 8200
GET_CONNECTION_FAILED = 8201
CONNECT_FAILED = 8202
CONNECT_TIMEOUT = 8203
DEADLINE_EXCEEDED = 8204
CONNECTION_RESET_BY_PEER = 8205
REMOTE_ALLOCATE_RESOURCE_WRITE_FAILED = 8206
REMOTE_ALLOCATE_RESOURCE_READ_FAILED = 8207
REMOTE_LOAD_KV_CACHE_FAILED = 8208
REMOTE_GENERATE_FAILED = 8209
RPC_FINISH_FAILED = 8210
DECODE_MALLOC_FAILED = 8211
LOAD_KV_CACHE_FAILED = 8212
WAIT_TO_RUN_TIMEOUT = 8213
# load cache error
LOAD_CACHE_TIMEOUT = 8300
CACHE_STORE_PUSH_ITEM_FAILED = 8301
CACHE_STORE_LOAD_CONNECT_FAILED = 8302
CACHE_STORE_LOAD_SEND_REQUEST_FAILED = 8303
CACHE_STORE_CALL_PREFILL_TIMEOUT = 8304
CACHE_STORE_LOAD_RDMA_CONNECT_FAILED = 8305
CACHE_STORE_LOAD_RDMA_WRITE_FAILED = 8306
CACHE_STORE_LOAD_BUFFER_TIMEOUT = 8307
CACHE_STORE_LOAD_UNKNOWN_ERROR = 8308
CACHE_STORE_STORE_FAILED = 8309
# multimodal error
MM_LONG_PROMPT_ERROR = 901
MM_WRONG_FORMAT_ERROR = 902
MM_PROCESS_ERROR = 903
MM_EMPTY_ENGINE_ERROR = 904
MM_NOT_SUPPORTED_ERROR = 905
MM_DOWNLOAD_FAILED = 906
@classmethod
def from_value(cls, value):
"""根据给定的值返回对应的枚举名称,或者引发值错误。"""
try:
return cls(value).name # 获取对应的枚举名
except ValueError:
raise ValueError(f"{value} is not a valid ExceptionType")
class FtRuntimeException(Exception):
def __init__(self, exception_type: ExceptionType, message: str):
self.exception_type = exception_type
self.message = message
super().__init__(self.message)