Files
rag/api/response_utils.py
lacerate551 100d1a06eb init: RAG 知识库服务初始提交
- 后端 API(Flask + Gunicorn)
- RAG 引擎(混合检索 + 云端 Reranker + 引用溯源)
- 文档解析(MinerU + 多格式支持)
- Docker 生产部署配置
- 排除前端项目、敏感配置、模型文件
2026-06-04 17:35:27 +08:00

84 lines
1.8 KiB
Python

"""
统一响应格式工具
提供标准化的 API 响应格式:
- success_response: 成功响应
- error_response: 错误响应
所有响应自动包含 success 字段,保持向后兼容。
"""
from flask import jsonify
from typing import Any, Optional
from core.status_codes import get_status_message
def success_response(
data: Any = None,
status_code: int = 2000,
message: Optional[str] = None,
http_status: int = 200,
**extra_fields
):
"""
构造成功响应
Args:
data: 响应数据
status_code: 业务状态码 (默认 2000)
message: 自定义消息 (默认使用状态码对应描述)
http_status: HTTP 状态码 (默认 200)
**extra_fields: 额外字段
Returns:
Flask Response 对象
"""
response = {
"success": True,
"status": "success",
"status_code": status_code,
"message": message or get_status_message(status_code),
}
if data is not None:
response["data"] = data
# 添加额外字段
response.update(extra_fields)
return jsonify(response), http_status
def error_response(
error_code: str,
status_code: int,
message: str,
http_status: int = 400,
**extra_fields
):
"""
构造错误响应
Args:
error_code: 错误码 (如 "MISSING_PARAMS", "UNAUTHORIZED")
status_code: 业务状态码
message: 错误消息
http_status: HTTP 状态码 (默认 400)
**extra_fields: 额外字段
Returns:
Flask Response 对象
"""
response = {
"success": False,
"status": "failed",
"error_code": error_code,
"status_code": status_code,
"message": message,
}
# 添加额外字段
response.update(extra_fields)
return jsonify(response), http_status