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

5.0 KiB
Raw Blame History

知识库问答助手测试总结

测试时间

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-002text-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. 重新测试

    • 修复后重新执行测试
    • 验证完整工作流是否正常
    • 测试知识库检索和答案生成

测试命令

# 发布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