diff --git a/app/api/search.py b/app/api/search.py index b3f8105..8f75f79 100644 --- a/app/api/search.py +++ b/app/api/search.py @@ -78,81 +78,7 @@ def search_docs(request: QueryRequest, user_id: str = Query(..., description=" response = query_engine.query(request.query) logger.info(f"Query response: {response}") - - - - # 打印出每个结果的向量和文本 - if response and isinstance(response, list): # 检查 response 是否有效且为可迭代的列表 - for i, node in enumerate(response): - # 确保每个 node 是合法的,具有必要的方法和属性 - if hasattr(node, 'get_content') and hasattr(node, 'embedding'): - logger.info(f"Result {i + 1}:") - logger.info(f" Text: {node.get_content()}") # 打印文本 - - # 打印向量及其长度 - embedding = node.embedding - logger.info(f" Embedding (Vector): {embedding}") # 打印向量 - logger.info(f" Embedding Length: {len(embedding)}") # 打印向量的长度(即向量的维度) - else: - logger.warning(f"Result {i + 1} is missing necessary attributes.") - else: - logger.warning("No valid results found in response or response is not a list.") - - - - - # # 返回检索结果 - # 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 是一个有效的列表且非空 - if isinstance(response, list) and response: # 检查 response 是否是非空列表 - # 返回检索结果 - result = { - "user_id": user_id, - "query": request.query, - "results": [] - } - - for i, node in enumerate(response): - # 检查每个 node 是否具有必要的方法和属性 - if hasattr(node, 'get_content') and hasattr(node, 'embedding'): - result["results"].append({ - "score": float(node.score or 0), # 评分(如果有的话) - "text": node.get_content() # 获取文本内容 - }) - # 打印相关信息(如果需要日志记录) - logger.info(f"Result {i + 1}:") - logger.info(f" Text: {node.get_content()}") # 打印文本 - embedding = node.embedding - logger.info(f" Embedding (Vector): {embedding}") # 打印向量 - logger.info(f" Embedding Length: {len(embedding)}") # 打印向量长度(维度) - else: - logger.warning(f"Result {i + 1} is missing necessary attributes.") - else: - logger.warning("No valid results found in response or response is not a list.") - result = { - "user_id": user_id, - "query": request.query, - "results": [] # 返回空结果 - } - - - - - - logger.info(f"Search results for user {user_id}: {result}") - return result + return response except Exception as e: logger.error(f"Error processing search request: {e}", exc_info=True)