fix: 搜索功能修复

- 添加详细日志帮助调试
- 搜索结果发送到前端展示
- 前端增加搜索结果展示组件
- 修复 datetime 导入错误
This commit is contained in:
2026-04-13 16:34:00 +08:00
parent 142904dff4
commit 25e92b1fb1
3 changed files with 66 additions and 5 deletions

View File

@@ -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({