# 知识库问答助手测试总结 ## 测试时间 2026-01-23 00:00 ## Agent信息 - **名称**: 知识库问答助手 - **ID**: `45c56398-ad1d-4533-89e0-ba02f9c47932` - **状态**: published(已发布) - **节点数量**: 10个 - **连接数量**: 9条 ## 工作流结构 1. **开始节点** - 接收用户问题 2. **问题预处理** - 整理输入数据 3. **文本向量化** - HTTP节点调用DeepSeek embedding API 4. **提取向量** - JSON节点提取embedding向量 5. **准备搜索数据** - 合并向量和查询文本 6. **知识库检索** - 向量数据库节点进行语义搜索 7. **整理检索结果** - 合并搜索结果和查询 8. **生成答案** - LLM节点基于检索结果生成答案 9. **提取最终答案** - JSON节点提取最终文本 10. **结束节点** - 返回答案 ## 测试结果 ### 测试输入 ``` 问题: 什么是人工智能? ``` ### 执行状态 - **状态**: failed(执行失败) - **执行时间**: 2240ms - **执行ID**: `e775395c-a306-4544-abaf-357c9245f56e` ### 错误分析 #### 1. HTTP节点调用embedding API失败 - **错误信息**: "Not Found. Please check the configuration." - **节点**: `http-embedding` - **API URL**: `https://api.deepseek.com/v1/embeddings` - **模型**: `deepseek-embedding` - **问题**: DeepSeek可能不支持embedding API,或者URL/模型名称不正确 #### 2. 向量数据库节点无法获取查询向量 - **错误信息**: "节点 vector-search 执行失败: 向量数据库操作失败: 无法获取查询向量" - **节点**: `vector-search` - **原因**: 由于embedding API调用失败,没有获取到向量数据 ### 执行日志关键信息 ``` [3] 2026-01-22 16:00:25 [INFO] 节点: http-embedding (http) 消息: 节点 http-embedding (http) 开始执行 [10] 2026-01-22 16:00:26 [ERROR] 节点: http-embedding (http) 消息: HTTP请求失败: 404 数据: { "error_msg": "Not Found. Please check the configuration." } [11] 2026-01-22 16:00:26 [INFO] 节点: vector-search (vector_db) 消息: 节点 vector-search (vector_db) 开始执行 [13] 2026-01-22 16:00:26 [ERROR] 节点: (无) ((无)) 消息: 工作流任务执行失败 错误: 节点 vector-search 执行失败: 向量数据库操作失败: 无法获取查询向量 ``` ## 问题根因 1. **DeepSeek Embedding API不支持或配置错误** - DeepSeek可能不提供embedding API - 或者需要使用不同的API端点/模型名称 - 需要验证DeepSeek是否支持embedding功能 2. **缺少备选方案** - 当前工作流完全依赖embedding API - 没有fallback机制处理API调用失败的情况 ## 解决方案 ### 方案1: 使用其他embedding服务 1. **使用OpenAI Embedding API** - URL: `https://api.openai.com/v1/embeddings` - 模型: `text-embedding-ada-002` 或 `text-embedding-3-small` - 需要配置OpenAI API Key 2. **使用本地embedding模型** - 使用sentence-transformers等库 - 在服务器端运行embedding模型 - 通过HTTP节点调用本地服务 ### 方案2: 简化工作流(用于测试) 1. **跳过embedding步骤** - 直接使用文本关键词匹配 - 或者使用LLM节点进行语义理解 - 简化向量数据库的使用 2. **使用预计算的向量** - 预先将知识库文档向量化 - 存储向量数据 - 查询时只需要搜索,不需要实时向量化 ### 方案3: 修复DeepSeek配置 1. **验证DeepSeek API文档** - 确认是否支持embedding - 确认正确的API端点和模型名称 - 更新HTTP节点配置 ## 下一步行动 1. **验证DeepSeek Embedding API** - 查阅DeepSeek官方文档 - 测试API端点是否可用 - 确认模型名称是否正确 2. **准备测试数据** - 创建知识库文档 - 将文档向量化并存储到向量数据库 - 使用`knowledge_base`集合 3. **修复或替换embedding节点** - 根据验证结果修复DeepSeek配置 - 或替换为其他embedding服务 - 或使用简化方案 4. **重新测试** - 修复后重新执行测试 - 验证完整工作流是否正常 - 测试知识库检索和答案生成 ## 测试命令 ```bash # 发布Agent python3 publish_agent.py "知识库问答助手" # 测试Agent python3 test_workflow_tool.py -a "知识库问答助手" -i "什么是人工智能?" # 查看执行日志 python3 check_execution_logs.py ``` ## 相关文件 - **Agent生成脚本**: `backend/scripts/generate_knowledge_base_qa_agent.py` - **测试工具**: `test_workflow_tool.py` - **日志查看工具**: `check_execution_logs.py` - **发布脚本**: `publish_agent.py` ## 注意事项 1. **知识库数据准备** - 需要先准备知识库文档 - 文档需要向量化并存储 - 集合名称必须是`knowledge_base` 2. **API配置** - 确保embedding API可用 - 配置正确的API Key - 验证API端点和模型名称 3. **向量数据库** - 当前使用内存存储(简化实现) - 生产环境应使用ChromaDB、Pinecone等 - 数据在服务重启后会丢失 --- 测试完成时间: 2026-01-23 00:02 测试人员: AI Assistant