From a534980b8bd134cec28afb818985225006a762aa Mon Sep 17 00:00:00 2001 From: hailin Date: Sun, 11 May 2025 14:08:18 +0800 Subject: [PATCH] . --- app/api/search.py | 50 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 41 insertions(+), 9 deletions(-) diff --git a/app/api/search.py b/app/api/search.py index f79260f..fd7476f 100644 --- a/app/api/search.py +++ b/app/api/search.py @@ -101,15 +101,47 @@ def search_docs(request: QueryRequest, user_id: str = Query(..., description=" - # 返回检索结果 - result = { - "user_id": user_id, - "query": request.query, - "results": [ - {"score": float(node.score or 0), "text": node.get_content()} # 确保从 Node 中获取文本 - for node in response - ] - } + # # 返回检索结果 + # result = { + # "user_id": user_id, + # "query": request.query, + # "results": [ + # {"score": float(node.score or 0), "text": node.get_content()} # 确保从 Node 中获取文本 + # for node in response + # ] + # } + + # 确保 response 是一个有效的 JSON 数据列表 + if response and hasattr(response, 'json'): + response_data = response.json() # 提取 JSON 数据 + + # 检查 response_data 是否为列表且不为空 + if isinstance(response_data, list) and len(response_data) > 0: + # 返回检索结果 + result = { + "user_id": user_id, + "query": request.query, + "results": [ + {"score": float(node.score or 0), "text": node.get_content()} # 确保从 Node 中获取文本 + for node in response_data + ] + } + else: + logger.warning("No valid results found in response_data or response_data is not a list.") + result = { + "user_id": user_id, + "query": request.query, + "results": [] + } + else: + logger.warning("Response is not iterable or invalid.") + result = { + "user_id": user_id, + "query": request.query, + "results": [] + } + + logger.info(f"Search results for user {user_id}: {result}") return result