Skip to content

skygazer42/pokemon-chat

Repository files navigation

📘 中文 | English

图标

「可萌」 图标 基于知识库与知识图谱的宝可梦聊天助手

Python FastAPI Docker LangGraph GraphRAG Agent Vue3 License


📋 更新日志

[2025/02/01] v0.4.0 版本发布

新功能

  • 多智能体协同:Supervisor + Workers (RAG/Web/Graph/Stats/MCP) 并行执行
  • 规则优先路由,本地宝可梦数据支持确定性回答(无需 LLM 调用)
  • 新增 DeepDoc 文档解析器,支持 PDF/Word 等复杂格式
  • 知识库工作台:批量导入、检索测试、分块管理
  • 全新 Rotom-Dex OS 主题,支持暗黑模式

优化

  • 集成 CRAG、Self-RAG、HyDE 等高级 RAG 技术
  • 并行子查询检索 + 自适应 Top-K
  • SQLite 持久化嵌入缓存
  • 统一 LLM 工厂函数,支持多 Provider 切换

修复

  • 修复 Agent 模式多个崩溃问题(tool_calls 检查、闭包绑定、竞态条件)
  • 修复知识库搜索参数未生效、L2 距离显示错误
  • 修复 Neo4j 无密码模式连接失败
  • 修复 Milvus 稀疏向量兼容性

破坏性更新

  • 移除旧版 GraphRAG,替换为 LightRAG
  • 前端重构,移除旧版组件
[2025/11/05] v0.3.0 版本发布
  • 全面适配 LangChain/LangGraph v1 版本的特性,使用 create_agent 创建智能体入口
  • 文档解析升级,适配 mineru-2.6 以及 mineru-api
  • 更多智能体开发套件:中间件、子智能体,更简洁,更易上手
---

📝 项目介绍

宝可梦(Pokémon)作为全球最具影响力的 IP 之一,拥有庞大的世界观设定与海量角色数据。在游戏、动画、卡牌、电影等多领域的多年积累下,其知识体系庞杂且高度结构化,非常适合应用于知识图谱建模与智能问答场景。

随着大语言模型(LLM)与知识增强技术的发展,将宝可梦宇宙构建为一个多模态、结构化、可交互的 AI 系统成为可能。本项目以 百度贴吧 与维基百科等数据源为基础,构建出覆盖宝可梦角色、属性、技能、地区、演化路径等元素的知识图谱,并结合大模型能力,打造一个专属宝可梦世界的智能对话助手 ——「可萌」。

在此基础上,我们融合了 LangGraph 推理流程编排LightRAG 检索增强技术,以及知识图谱可视化探索能力,使用户不仅可以通过自然语言提问获得精确答案,还能以图谱形式直观探索宝可梦世界。同时支持基于地理位置的地图定位功能,将宝可梦世界与真实世界坐标一一映射,实现 宝可梦地点知识的空间可视化 🌏 。

​ 本项目致力于打造一个可迁移、可扩展、面向爱好者的专域智能助手模板系统,你可以轻松将其迁移至其他角色中打造专域的智能助手,仅需更换知识源与图谱结构,即可实现高质量的语义问答与可视化知识探索体验。


🚀 新增特性 (New Features)

  • LangChain & LangGraph: 重构为LangChain 1.x 与 LangGraph 1.0 多智能体编排对话助手
  • LightRAG Integration: 支持 LightRAG 高效检索图谱构建
  • Advanced RAG: 集成 Self-RAG、CRAG、HyDE 与 Query Decomposition 高级rag
  • Agentic Memory: 具备用户偏好自适应的长时记忆能力与时间规划
  • MCP Service: 支持 Model Context Protocol 连接真实世界地理数据
  • Performance: 内置 Semantic Cache 与 Speculative RAG 加速生成

🎯系统架构

通过本项目的实施,我们不仅完成了vue3+fastapi的一个完整项目,同时构建了一个基于宝可梦知识图谱的智能问答系统。积累了语义结构建模如bert+tf-idf+规则匹配机制、以及图谱融合与生成式问答的丰富实践经验。系统支持对宝可梦的进化关系、属性克制、技能特征、地理分布等内容进行精准问答,极大提升了用户在交互式探索中的体验感。

架构核心:

  • 混合检索: 向量检索 (Milvus) + 图谱检索 (Neo4j) + 关键词检索 (BM25)
  • 智能体编排: LangGraph1.x 状态机管理复杂任务流
  • 知识增强: GraphRAG 提取实体关系

以下是本项目的核心技术架构图:

图标

🎯项目特色

  1. 基于爬取的数据微调了基于宝可梦的专域大模型——可萌
  2. 基于爬取数据构建了宝可梦知识图谱(维基百科)。
  3. 自动化标注训练NER数据,使用roberta+TF-IDF+规则匹配来命中图谱中的实体与属性。
  4. 使用FunASR来实现ASR功能(阿里达摩院开源语音识别)。
  5. 实现 MCP 服务,支持宝可梦世界与真实世界地理坐标的映射查询。
  6. 抽取RAGflow中的deepdoc来强化知识库的解析和抽取能力。
  7. 使用LangGraph实现多智能体协同(RAG + Search + Graph + MCP)。
  8. 封装agent 基类实现多智能体功能。
  9. 支持知识图谱搜索、网络搜索、知识库搜索、MCP搜索、语音搜索,可以同时集成也可以任选其一。

🐳 Docker Compose

# 1. 克隆仓库
git clone https://github.com/skygazer42/pokemon-chat.git
cd pokemon-chat

# 2. 配置环境变量(后端统一从仓库根目录 `.env` 读取,Docker Compose 也会加载该文件)
cp .env.example .env
# 编辑 .env,填写 LLM API KEY(如 llm_api_key / SILICONFLOW_API_KEY)
# 可选:开启检索/工具能力(示例)
#   enable_knowledge_graph=true   # Neo4j 知识图谱
#   enable_knowledge_base=true    # Milvus 知识库
#   enable_web_search=true        # Web 搜索(需 tavily_api_key)
#   enable_mcp=true               # MCP(通常配合 `--profile infra --profile mcp`)
# 可选:开启语音识别(FunASR)-> enable_asr=true,funasr_url=ws://funasr:10095(Docker)
# 可选:限制 CORS 来源(生产环境建议)-> cors_allow_origins=http://localhost:3100

# 3. 启动服务
cd docker
# 默认仅启动 App(API + Web)。
docker compose up -d --build

# 可选:启动 Infra(Neo4j/MySQL/Milvus 等)+ 自动导入 Neo4j 图谱数据(neo4j-bootstrap)
# docker compose --profile infra up -d --build

# 可选:启动 MCP SSE 服务(需要 MySQL,因此通常与 infra 一起启用)
# docker compose --profile infra --profile mcp up -d --build

# 可选:启动语音识别(FunASR)
# docker compose --profile asr up -d --build

访问:

📦 数据初始化(首次运行)

当你使用 --profile infra 启动时,会自动导入 Neo4j 图谱数据,数据来源:

  • resources/data/kg_data/entities.json
  • resources/data/kg_data/relations.json

可选:MySQL 地图数据导入(地图功能需要时再执行)。 由于环境差异较大,这一步不默认自动执行,避免影响“一键启动”。

cd docker
docker compose exec api python scripts/import_pokemon_map.py

如果你想彻底清空数据(Neo4j/Milvus/MySQL 等)重新来一遍(需要你曾用 --profile infra 启动):

cd docker
docker compose down
# 删除数据目录(Linux/macOS/WSL)
rm -rf volumes/neo4j/data volumes/neo4j/logs volumes/milvus volumes/mysql/data
docker compose --profile infra up -d --build
# Neo4j 图谱数据会由 neo4j-bootstrap 自动重新导入

Windows PowerShell:

cd docker
docker compose down
Remove-Item -Recurse -Force .\volumes\neo4j\data, .\volumes\neo4j\logs, .\volumes\milvus, .\volumes\mysql\data
docker compose --profile infra up -d --build

🔭 参考项目


📄 License

本项目遵循 MIT License,可自由用于商业或个人项目。二次开发请保留原作者与来源信息。

About

基于 LightRAG、LangGraph、MCP、RagFlow、微调LLMs宝可梦主题的智能聊天助手

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors