Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TraceMind:基于多模态 RAG 的可信产品客服 Agent

TraceMind 面向产品售后客服场景,构建一套接近真实客服系统的可信 Agent:

  • 面向用户:用 ChatGPT 式低认知聊天界面解决产品使用、故障排查、操作咨询和售后判断问题。
  • 面向团队:用 Trace Console 观察 Agent 为什么这么回答、检索命中了什么、什么时候澄清、什么时候 fallback 或转人工。

项目当前支持文本问题、图片输入、产品手册知识库、多轮澄清、路由前知识范围收缩、混合检索、轻量 rerank、证据返回和离线回归评测。

产品架构

TraceMind
├── User Chat
│   ├── 聊天
│   ├── 历史记录
│   └── 设置
└── Trace Console
    ├── Dashboard
    ├── Session
    ├── 检索分析
    ├── 质量分析
    └── 系统监控

User Chat

用户端只保留客服体验,不展示 Session ID、RAG 状态、模型名称、Token、Raw JSON 等内部字段。

当前能力:

  • 多轮客服对话
  • 模糊问题反问澄清
  • 图片上传
  • 快捷入口:故障诊断、产品咨询、售后支持
  • 回答底部折叠展示“回答依据”
  • 澄清候选按钮区分“真实选项”和“待用户补槽信息”

Trace Console

内部管理端用于研发、产品和答辩展示,重点解释 Agent 的运行链路。

当前能力:

  • Session 状态观察
  • Router / Query Rewrite / Retrieval / Rerank / Answer 链路展示
  • 命中 source、chunk 数量、top 片段、fallback 状态
  • Raw JSON 调试
  • 离线评测指标展示口径

技术栈

  • Backend:FastAPI
  • Frontend:React + Vite
  • Vector DB:Milvus
  • Retrieval:BM25 + 向量检索 + 轻量规则 rerank
  • LLM API:OpenAI-compatible 接口,推荐 DashScope / Qwen,也兼容 DeepSeek 等国内模型
  • Agent 编排:以自研 pipeline 和多轮澄清状态机为主
  • LangChain:用于模型调用、Prompt、OutputParser、Milvus Retriever、Text Splitter 等链路
  • LangGraph:当前作为依赖引入,并在通用问答链路中使用 checkpoint 相关能力;主流程暂未使用完整 StateGraph 编排

项目结构

TraceMind/
├── README.md
├── interface.py                         # FastAPI 启动入口
├── pipeline.py                          # 兼容导出入口
├── milvus-docker-compose.yml
├── pyproject.toml
├── tracemind/
│   ├── api.py                           # API 与 Playground 静态入口
│   ├── pipeline.py                      # 在线主链路
│   ├── clarifier.py                     # 首轮澄清判断
│   ├── conversation_state_machine.py    # 分阶段澄清状态机
│   ├── clarification_resolver.py        # 多轮补槽解析
│   ├── followup_classifier.py           # 追问/补充/切换分类
│   ├── session_store.py                 # 会话状态
│   ├── query_classification.py          # 查询分类与路由
│   ├── query_rewriter.py                # 增强查询改写
│   ├── routing_scope.py                 # 路由前知识范围收缩
│   ├── retriever.py                     # 混合检索与可观测输出
│   ├── answer_product_query.py          # 产品问答
│   ├── answer_general_query.py          # 通用问答
│   ├── model_factory.py                 # 模型工厂
│   └── utils.py
├── frontend/
│   ├── src/
│   ├── package.json
│   └── vite.config.js
├── scripts/
│   ├── build_kb.py                      # 推荐建库脚本
│   ├── evaluate_tracemind.py            # 离线评测
│   └── generate_multiturn_benchmark.py  # 合成多轮评测集生成
├── tests/
├── docs/
├── eval/
│   ├── multiturn_benchmark_50.csv
│   └── multiturn_benchmark_200.csv
├── processed_data/
├── catalog/
├── data/
└── assets/

环境准备

1. 安装 Python 依赖

推荐使用 uv

uv sync -i https://pypi.tuna.tsinghua.edu.cn/simple

如果已经有 .venv,也可以:

.\.venv\Scripts\activate
pip install -e .

2. 配置 .env

复制模板:

Copy-Item .env.example .env

至少需要配置:

CHAT_BASE_URL=
CHAT_API_KEY=
CHAT_MODEL=

EMBEDDING_BASE_URL=
EMBEDDING_API_KEY=
EMBEDDING_MODEL=

MILVUS_HOST=127.0.0.1
MILVUS_PORT=19530
MILVUS_DB_NAME=default

USE_CONTEXTUAL_AUGMENTATION=1
USE_QUERY_CLS=1

推荐 DashScope / Qwen 示例:

CHAT_BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1"
CHAT_API_KEY="你的 DashScope API Key"
CHAT_MODEL="qwen-plus"

EMBEDDING_BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1"
EMBEDDING_API_KEY="你的 DashScope API Key"
EMBEDDING_MODEL="text-embedding-v3"

DeepSeek 可作为文本模型兼容选项,但它不具备多模态视觉能力;如果要测试图片理解,建议换成支持视觉输入的模型服务。

启动 Milvus

需要本机安装 Docker Desktop。

docker compose -f milvus-docker-compose.yml up -d
docker ps

正常情况下会看到:

  • milvus-standalone
  • milvus-etcd
  • milvus-minio

建库流程

当前推荐直接使用仓库中已经整理好的 processed_data/ 建库:

.\.venv\Scripts\python -m scripts.build_kb

建库脚本会:

  • 读取 processed_data/
  • 按 Markdown 标题结构切分
  • 写入 Milvus
  • 输出手册数量、source 覆盖、chunk 数量等统计信息

如果只想调试某一本手册:

$env:MANUAL_FILTER="吹风机"
.\.venv\Scripts\python -m scripts.build_kb
Remove-Item Env:MANUAL_FILTER

当前知识库覆盖口径:

  • 预期手册数:40
  • 已入库 source 数:40
  • 缺失 source:0
  • 额外 source:0

启动后端

.\.venv\Scripts\python interface.py

默认访问:

也可以指定端口启动:

@'
import uvicorn
uvicorn.run("tracemind.api:app", host="0.0.0.0", port=8765, env_file=".env", reload=False)
'@ | .\.venv\Scripts\python -

启动 React 前端

cd frontend
npm install
npm run dev -- --host 127.0.0.1 --port 5173

访问:

http://127.0.0.1:5173/playground-static/

前端包含两个视角:

  • 聊天:用户端客服体验
  • 观测:Trace Console 内部调试和分析

快速验证

可以先问:

使用吹风机时,人员需要佩戴哪些防护装备?

或测试多轮澄清:

这个功能不好用

期望现象:

  • 模糊问题会先触发澄清
  • 如果点击“补充产品名称”等空槽位按钮,前端只会提示输入具体信息,不会把按钮文案当成用户回答
  • 补充产品和任务后,系统会收敛到对应手册
  • Trace Console 可查看 route source、检索片段、fallback 状态和 Raw JSON

离线评测

合成多轮评测集

当前仓库提供合成多轮评测集,用于回归测试和模块行为验证:

  • eval/multiturn_benchmark_50.csv
  • eval/multiturn_benchmark_200.csv

生成脚本:

.\.venv\Scripts\python -m scripts.generate_multiturn_benchmark --size 200 --output-file eval/multiturn_benchmark_200.csv

评测命令:

.\.venv\Scripts\python -m scripts.evaluate_tracemind `
  --question-file eval/multiturn_benchmark_200.csv `
  --output-dir eval/multiturn_benchmark_200_run `
  --top-k 19

run4 指标口径

最近一次 200 条合成多轮评测 run4:

  • 系统异常:0
  • response type 准确率:100%
  • source top-1 准确率:97.73%
  • source top-k recall:98.3%
  • topic switch 准确率:95.5%
  • required keyword 全匹配率:98.3%
  • fallback 触发率:2.5%

分类结果:

  • single_followup:回答率 100%,澄清解决率 100%
  • staged:回答率 100%,澄清解决率 100%
  • correction:回答率 100%,澄清解决率 100%
  • topic_switch:回答率 100%,澄清解决率 100%
  • handoff:handoff 率 100%

设计亮点

  1. 前后台产品拆分

    User Chat 服务用户低认知交互,Trace Console 服务团队可观测和优化。

  2. 多轮澄清闭环

    对模糊问题不急于检索,先收集产品、任务类型、故障现象、页面/功能等槽位。

  3. 路由前范围收缩

    在正式检索前先根据目录级召回、产品候选和上下文 source hint 缩小知识范围。

  4. 混合检索与轻量 rerank

    基于 Milvus 同时使用 BM25 和向量检索,并根据来源、结构化上下文、关键词覆盖做轻量重排。

  5. 可观测检索

    返回命中 source、chunk 数量、top 片段、fallback 状态,便于复盘和调优。

  6. 降级与转人工

    多轮无效补充后不继续猜测,进入 handoff 状态。

当前边界

  • 多模态链路目前重点支持图片输入和图片返回,视觉理解效果取决于所配置模型能力。
  • 合成评测集不能替代真实客服数据,需要后续补充人工标注真实样例。
  • LangGraph 暂未承担完整 Agent 工作流图编排,主流程仍以自研 pipeline 和状态机为主。
  • detailed results 的 JSON 可解析性仍需继续增强,便于失败样例自动分析。

About

TraceMind 是一个基于多模态 RAG 的可信产品客服 Agent,面向复杂产品咨询与手册问答场景,支持图文内容理解、查询分类、混合检索与证据约束生成,能够结合产品手册和配图返回更准确、更可追溯的客服式回答。

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages