fix: 搜索功能修复
- 添加详细日志帮助调试 - 搜索结果发送到前端展示 - 前端增加搜索结果展示组件 - 修复 datetime 导入错误
This commit is contained in:
34
main_v2.py
34
main_v2.py
@@ -783,11 +783,19 @@ async def websocket_endpoint(websocket: WebSocket, user_id: str):
|
||||
|
||||
# 检查是否需要执行搜索
|
||||
search_context = None
|
||||
search_results_for_client = None # 用于发送给前端
|
||||
logger.info(f"检查搜索条件: agent_tools={agent_tools}, disabled_tools={disabled_tools}")
|
||||
|
||||
if 'search' in agent_tools and 'search' not in disabled_tools:
|
||||
# 只要启用了搜索工具且未禁用,就执行搜索(不再依赖关键词检测)
|
||||
should_search = True
|
||||
# 只要启用了搜索工具且未禁用,就执行搜索
|
||||
logger.info("搜索条件满足,开始执行搜索")
|
||||
|
||||
if should_search:
|
||||
# 执行搜索
|
||||
tool_service = ToolService(db)
|
||||
search_tool = tool_service.get_default_tool('search')
|
||||
logger.info(f"获取到搜索工具: {search_tool.name if search_tool else 'None'}")
|
||||
|
||||
if search_tool and search_tool.config.get('api_key'):
|
||||
# 执行搜索
|
||||
tool_service = ToolService(db)
|
||||
search_tool = tool_service.get_default_tool('search')
|
||||
@@ -815,12 +823,30 @@ async def websocket_endpoint(websocket: WebSocket, user_id: str):
|
||||
duration_ms = int((time.time() - start_time) * 1000)
|
||||
|
||||
if search_result.get("results"):
|
||||
# 构建搜索上下文
|
||||
# 构建搜索上下文(给LLM)
|
||||
search_context = "\n\n【搜索结果】\n"
|
||||
for i, r in enumerate(search_result["results"][:5], 1):
|
||||
search_context += f"{i}. {r.get('title', 'N/A')}\n {r.get('content', r.get('snippet', 'N/A'))[:200]}\n 来源: {r.get('url', 'N/A')}\n"
|
||||
logger.info(f"搜索完成: {len(search_result['results'])} 条结果")
|
||||
|
||||
# 构建搜索结果给前端展示
|
||||
search_results_for_client = [
|
||||
{
|
||||
"title": r.get('title', 'N/A'),
|
||||
"snippet": r.get('content', r.get('snippet', ''))[:150],
|
||||
"url": r.get('url', 'N/A')
|
||||
}
|
||||
for r in search_result["results"][:5]
|
||||
]
|
||||
|
||||
# 发送搜索结果给前端
|
||||
await websocket.send_json({
|
||||
"type": "search_results",
|
||||
"conversation_id": conversation_id,
|
||||
"results": search_results_for_client,
|
||||
"query": message
|
||||
})
|
||||
|
||||
# 更新统计和日志
|
||||
tool_service.increment_stats(search_tool.id, True)
|
||||
tool_service.log_usage({
|
||||
|
||||
Reference in New Issue
Block a user