78 lines
2.0 KiB
Python
78 lines
2.0 KiB
Python
class DocumentProcessingError(Exception):
|
|
"""文档处理相关错误"""
|
|
pass
|
|
|
|
class VectorStoreError(Exception):
|
|
"""向量存储相关错误"""
|
|
pass
|
|
|
|
class RetrievalError(Exception):
|
|
"""检索相关错误"""
|
|
pass
|
|
|
|
class GenerationError(Exception):
|
|
"""文本生成相关错误"""
|
|
pass
|
|
|
|
class ConfigurationError(Exception):
|
|
"""配置相关错误"""
|
|
pass
|
|
|
|
class ExportError(Exception):
|
|
"""导出相关错误"""
|
|
pass
|
|
|
|
class SecurityError(Exception):
|
|
"""安全相关错误"""
|
|
pass
|
|
|
|
def handle_exception(exc: Exception) -> dict:
|
|
"""统一异常处理"""
|
|
if isinstance(exc, DocumentProcessingError):
|
|
return {
|
|
"error": "文档处理失败",
|
|
"message": str(exc),
|
|
"code": "DOC_PROCESSING_ERROR"
|
|
}
|
|
elif isinstance(exc, VectorStoreError):
|
|
return {
|
|
"error": "向量存储错误",
|
|
"message": str(exc),
|
|
"code": "VECTOR_STORE_ERROR"
|
|
}
|
|
elif isinstance(exc, RetrievalError):
|
|
return {
|
|
"error": "检索失败",
|
|
"message": str(exc),
|
|
"code": "RETRIEVAL_ERROR"
|
|
}
|
|
elif isinstance(exc, GenerationError):
|
|
return {
|
|
"error": "文本生成失败",
|
|
"message": str(exc),
|
|
"code": "GENERATION_ERROR"
|
|
}
|
|
elif isinstance(exc, ConfigurationError):
|
|
return {
|
|
"error": "配置错误",
|
|
"message": str(exc),
|
|
"code": "CONFIGURATION_ERROR"
|
|
}
|
|
elif isinstance(exc, ExportError):
|
|
return {
|
|
"error": "导出失败",
|
|
"message": str(exc),
|
|
"code": "EXPORT_ERROR"
|
|
}
|
|
elif isinstance(exc, SecurityError):
|
|
return {
|
|
"error": "安全错误",
|
|
"message": str(exc),
|
|
"code": "SECURITY_ERROR"
|
|
}
|
|
else:
|
|
return {
|
|
"error": "未知错误",
|
|
"message": str(exc),
|
|
"code": "UNKNOWN_ERROR"
|
|
} |