51dc8dc4f6
- FastAPI + Qdrant + Redis + Ollama 技术栈 - L1→L2→L3→chunk 四层分层检索(dense + sparse RRF 融合) - 文档三级总结与 2.5 级回退 - query 解析路由与分类 - /admin 管理页面
27 lines
764 B
Python
27 lines
764 B
Python
"""统一 API 响应包装与业务异常
|
|
|
|
响应格式:{"code": 0, "data": ..., "message": "ok"}
|
|
错误码约定:0 成功;1001 请求参数校验失败;2000 服务器内部错误。
|
|
"""
|
|
|
|
from typing import Any
|
|
|
|
|
|
def ok(data: Any) -> dict[str, Any]:
|
|
"""成功响应包装"""
|
|
return {"code": 0, "data": data, "message": "ok"}
|
|
|
|
|
|
def error(code: int, message: str) -> dict[str, Any]:
|
|
"""错误响应包装"""
|
|
return {"code": code, "data": None, "message": message}
|
|
|
|
|
|
class ApiError(Exception):
|
|
"""业务异常:携带错误码与消息,由全局异常处理器转为统一错误响应"""
|
|
|
|
def __init__(self, code: int, message: str) -> None:
|
|
self.code = code
|
|
self.message = message
|
|
super().__init__(message)
|