fix: search_documents 端点添加异常处理防止 traceback 泄露
This commit is contained in:
@@ -32,12 +32,11 @@ class PDFSplitter:
|
||||
pdf_path = text # text 参数实际是文件路径
|
||||
extracted_pages = []
|
||||
try:
|
||||
doc = fitz.open(pdf_path)
|
||||
for page in doc:
|
||||
page_text = page.get_text()
|
||||
if page_text.strip():
|
||||
extracted_pages.append(page_text)
|
||||
doc.close()
|
||||
with fitz.open(pdf_path) as doc:
|
||||
for page in doc:
|
||||
page_text = page.get_text()
|
||||
if page_text.strip():
|
||||
extracted_pages.append(page_text)
|
||||
except Exception as e:
|
||||
logger.error("PDF 解析失败: %s — %s", pdf_path, e)
|
||||
raise ValueError(f"PDF 解析失败: {e}") from e
|
||||
|
||||
+9
-3
@@ -150,9 +150,15 @@ def search_documents(
|
||||
state: AppState = Depends(get_state),
|
||||
_: bool = Depends(verify_api_key),
|
||||
):
|
||||
searcher = state.get_searcher(req.collection)
|
||||
results = searcher.search(req.query, top_k=req.top_k)
|
||||
return {"results": results, "collection": searcher.collection_name}
|
||||
try:
|
||||
searcher = state.get_searcher(req.collection)
|
||||
results = searcher.search(req.query, top_k=req.top_k)
|
||||
return {"results": results, "collection": searcher.collection_name}
|
||||
except HTTPException:
|
||||
raise
|
||||
except Exception:
|
||||
logger.exception("检索失败")
|
||||
raise HTTPException(status_code=500, detail="服务器内部错误")
|
||||
|
||||
|
||||
@app.delete("/api/v1/documents/{file_name}")
|
||||
|
||||
Reference in New Issue
Block a user