基于 LangGraph 多智能体与 GraphRAG 技术的宝可梦领域智能聊天助手,集成 Neo4j 知识图谱、Milvus 向量检索与多源混合检索,支持复杂关系推理与高精度问答。同时作为可迁移的专域知识库系统模板,可快速适配金融、政务等垂直领域。
项目简介#
可萌(Pokemon-Chat) 是一个面向宝可梦爱好者的专域智能问答系统,采用 LangGraph 多智能体编排架构与 GraphRAG 技术,解决通用大模型在垂直领域知识不足、幻觉频发的问题。同时提供完整的 Docker Compose 部署方案,可作为可迁移的专域知识库系统模板。
核心特性#
智能问答与检索#
- 知识图谱问答:基于 Neo4j 构建,支持进化路径、属性相克、技能池、地理分布等结构化关系查询
- 多源混合检索:融合 Milvus 向量检索、Neo4j 图谱检索与 BM25 关键词检索
- 高级 RAG 策略:Self-RAG/CRAG 自我反思与检索修正、HyDE 假设文档嵌入、Query Decomposition 复杂问题拆解、Reranker 重排序
- GraphRAG (LightRAG):集成 HKU-DS LightRAG,增强图谱构建与检索能力
- 规则优先路由:对确定性数据(如种族值)直接规则返回,无需 LLM 调用
多智能体架构#
采用 Supervisor-Workers 模式:
- Supervisor Agent:意图识别与任务分发
- RAG Worker:处理文档与知识库检索
- Web Worker:Tavily 联网搜索
- Graph Worker:Neo4j Cypher 图谱查询
- Stats Worker:数值统计分析
- MCP Worker:外部工具与地图服务
知识处理能力#
- 领域模型:基于 Qwen2.5-14B-Instruct 微调的宝可梦领域模型(INT4 量化)
- 实体识别 (NER):RoBERTa + TF-IDF + 规则匹配三重保障
- 文档解析:DeepDoc(源自 RAGflow),支持 PDF/Word 等复杂版面
- 知识库工作台:批量导入、分块管理、检索测试
交互与界面#
- Rotom-Dex OS 主题:高度还原宝可梦游戏风格 UI,支持暗黑模式
- 语音输入:集成阿里达摩院 FunASR 流式语音识别
- 地图可视化:MCP 服务支持宝可梦地理分布展示
- 图谱可视化:Neo4j 关系网络可视化展示
性能优化#
- Semantic Cache 语义缓存减少重复计算
- Speculative RAG 推测性加速
- SQLite 持久化对话状态与嵌入缓存
部署指南#
前置要求#
- Docker & Docker Compose
- Node.js ≥ 18(前端本地开发)
- Python ≥ 3.11(后端本地开发)
快速启动#
# 克隆仓库
git clone https://github.com/skygazer42/pokemon-chat.git
cd pokemon-chat
# 配置环境变量
cp .env.example .env
# 编辑 .env 填写 LLM API Key(如 SILICONFLOW_API_KEY)
# 启动核心服务
cd docker
docker compose up -d --build
# 启动完整基础设施(含 Neo4j/MySQL/Milvus)
docker compose --profile infra up -d --build
# 可选:启用 MCP 服务
docker compose --profile infra --profile mcp up -d --build
# 可选:启用语音服务
docker compose --profile infra --profile asr up -d --build
访问入口#
- Web UI:http://localhost:3100/
- API 文档:http://localhost:5050/api/docs
- Neo4j Browser:http://localhost:7474/
数据初始化#
使用 --profile infra 启动时,neo4j-bootstrap 容器自动导入知识图谱数据:
resources/data/kg_data/entities.jsonresources/data/kg_data/relations.json
地图功能数据导入:
docker compose exec api python scripts/import_pokemon_map.py
配置说明#
项目通过根目录 .env 文件统一管理配置,Docker Compose 自动读取。
关键功能开关#
| 配置项 | 说明 |
|---|---|
enable_knowledge_base | 启用 Milvus 向量检索 |
enable_knowledge_graph | 启用 Neo4j 图谱检索 |
enable_web_search | 启用 Tavily 联网搜索(需 tavily_api_key) |
enable_mcp | 启用 MCP 工具服务 |
enable_reranker | 启用重排序模型 |
enable_ner_bert | 启用本地 BERT NER |
enable_asr | 启用 FunASR 语音识别 |
allow_dangerous_graph_requests | 允许动态 Cypher(生产建议 false) |
模型配置#
- LLM:
llm_api_key、llm_api_base、llm_model_name、llm_temperature、llm_max_tokens - Embedding:
embedding_provider、embedding_api_key、embedding_model_name、embedding_dimension - Reranker:
reranker_model_name、reranker_top_k、reranker_threshold
数据库配置#
- Neo4j:
neo4j_uri(如 bolt://neo4j:7687)、neo4j_username、neo4j_password - Milvus:
milvus_uri(如 http://milvus:19530) - MySQL:
mysql_host、mysql_port、mysql_user、mysql_password、mysql_database
核心流程#
- 输入处理:语音/文本 → ASR (FunASR) → 文本 → NER 提取实体
- 意图路由:Supervisor Agent 分析意图,决策规则引擎直接回答或分发给各 Worker
- 检索执行:
- RAG Worker → 向量检索 + 重排
- Graph Worker → Neo4j Cypher 查询
- Web Worker → Tavily 搜索
- 生成汇总:各 Worker 结果汇总 → LLM 生成最终回复 → 前端渲染
扩展与迁移#
该项目架构设计支持快速迁移至其他垂直领域:
- 替换知识源数据(
entities.json、relations.json) - 调整 Neo4j 图谱 Schema
- 更新领域相关配置与提示词
- 可选:微调领域专属模型
适用场景:金融问答、法律咨询、政务服务等需要精确知识检索与关系推理的专域应用。