fix: KGEmptyError 自定义异常 + CORS 环境变量配置

- qa_service 定义 KGEmptyError 异常,run_query 抛出;routers/query 精确捕获 → HTTP 400 + code 3002,移除字符串匹配
- main.py CORS 改为读 CORS_ORIGINS 环境变量:未设置时 wildcard + credentials=False(合规默认),设置后显式列表 + credentials=True
- .env.example 新增 CORS_ORIGINS 默认值(后端 + 前端 4 个域名)
This commit is contained in:
plf
2026-06-18 14:06:38 +08:00
parent 347f9dcae5
commit ebf27a6c3e
4 changed files with 31 additions and 8 deletions
+6 -5
View File
@@ -7,6 +7,7 @@ from fastapi.responses import JSONResponse
from models.schemas import APIResponse, BatchQueryRequest, QueryRequest
from services import qa_service as svc
from services.qa_service import KGEmptyError
router = APIRouter(prefix="/query", tags=["QA"])
@@ -20,12 +21,12 @@ async def run_query(body: QueryRequest):
partial(svc.run_query, body.question, [m.model_dump() for m in body.history]),
)
return APIResponse.ok(result)
except KGEmptyError as e:
return JSONResponse(
status_code=400,
content=APIResponse.err(3002, str(e)).model_dump(),
)
except ValueError as e:
if "KG_EMPTY" in str(e):
return JSONResponse(
status_code=400,
content=APIResponse.err(3002, "Knowledge graph is empty. Index documents first.").model_dump(),
)
return JSONResponse(
status_code=500,
content=APIResponse.err(4001, str(e)).model_dump(),