Files
aiagent/知识库问答助手测试总结.md
2026-01-23 09:49:45 +08:00

179 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 知识库问答助手测试总结
## 测试时间
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