Content
<div align="right">
<details>
<summary >🌐 Language</summary>
<div>
<div align="center">
<a href="https://openaitx.github.io/view.html?user=jhlucc&project=pokemon-chat&lang=en">English</a>
| <a href="https://openaitx.github.io/view.html?user=jhlucc&project=pokemon-chat&lang=zh-CN">Simplified Chinese</a>
| <a href="https://openaitx.github.io/view.html?user=jhlucc&project=pokemon-chat&lang=zh-TW">Traditional Chinese</a>
| <a href="https://openaitx.github.io/view.html?user=jhlucc&project=pokemon-chat&lang=ja">Japanese</a>
| <a href="https://openaitx.github.io/view.html?user=jhlucc&project=pokemon-chat&lang=ko">Korean</a>
| <a href="https://openaitx.github.io/view.html?user=jhlucc&project=pokemon-chat&lang=hi">Hindi</a>
| <a href="https://openaitx.github.io/view.html?user=jhlucc&project=pokemon-chat&lang=th">Thai</a>
| <a href="https://openaitx.github.io/view.html?user=jhlucc&project=pokemon-chat&lang=fr">Français</a>
| <a href="https://openaitx.github.io/view.html?user=jhlucc&project=pokemon-chat&lang=de">Deutsch</a>
| <a href="https://openaitx.github.io/view.html?user=jhlucc&project=pokemon-chat&lang=es">Español</a>
| <a href="https://openaitx.github.io/view.html?user=jhlucc&project=pokemon-chat&lang=it">Italiano</a>
| <a href="https://openaitx.github.io/view.html?user=jhlucc&project=pokemon-chat&lang=ru">Русский</a>
| <a href="https://openaitx.github.io/view.html?user=jhlucc&project=pokemon-chat&lang=pt">Português</a>
| <a href="https://openaitx.github.io/view.html?user=jhlucc&project=pokemon-chat&lang=nl">Nederlands</a>
| <a href="https://openaitx.github.io/view.html?user=jhlucc&project=pokemon-chat&lang=pl">Polski</a>
| <a href="https://openaitx.github.io/view.html?user=jhlucc&project=pokemon-chat&lang=ar">العربية</a>
| <a href="https://openaitx.github.io/view.html?user=jhlucc&project=pokemon-chat&lang=fa">فارسی</a>
| <a href="https://openaitx.github.io/view.html?user=jhlucc&project=pokemon-chat&lang=tr">Türkçe</a>
| <a href="https://openaitx.github.io/view.html?user=jhlucc&project=pokemon-chat&lang=vi">Tiếng Việt</a>
| <a href="https://openaitx.github.io/view.html?user=jhlucc&project=pokemon-chat&lang=id">Bahasa Indonesia</a>
</div>
</div>
</details>
</div>
📘 English | [English](./README.en.md)
<img src="resources/picture/11.png" alt="图标" style="width: 27%;" />
# Tool List <img src="resources/picture/brain-removebg-preview.png" alt="图标" style="width: 11%;" />








---
## 📋 Update Log
<details>
<summary>[2025/02/01] v0.4.0 Release</summary>
### New Features
- Multi-agent collaboration: Supervisor + Workers (RAG/Web/Graph/Stats/MCP) execute in parallel
- Rule-based routing, local Pokémon data support deterministic answers (no LLM call required)
- New DeepDoc document parser, supporting complex formats like PDF/Word
- Knowledge base workbench: batch import, retrieval test, and block management
- New Rotom-Dex OS theme, supporting dark mode
### Optimizations
- Integrated CRAG, Self-RAG, HyDE and other advanced RAG technologies
- Parallel sub-query retrieval + adaptive Top-K
- SQLite persistent embedded cache
- Unified LLM factory function, supporting multi-provider switching
### Fixes
- Fixed multiple crashes in Agent mode (tool_calls inspection, closure binding, and race conditions)
- Fixed knowledge base search parameter not taking effect, L2 distance display error
- Fixed Neo4j connection failure in no-password mode
- Fixed Milvus sparse vector compatibility
### Breaking Changes
- Removed old GraphRAG, replaced with LightRAG
- Frontend refactoring, removed old components
</details>
<details>
<summary>[2025/11/05] v0.3.0 Release</summary>
- Fully adapted to LangChain/LangGraph v1 features, using create_agent to create agent entry
- Document parsing upgraded, adapted to mineru-2.6 and mineru-api
- More agent development kits: middleware, sub-agents, simpler and easier to use
</details>
---
## 📝 Project Introduction
Pokémon, as one of the most influential IPs globally, has a vast and highly structured knowledge system accumulated over years of development in games, anime, trading cards, movies, and more. This makes it an ideal candidate for knowledge graph modeling and intelligent Q&A scenarios.
With the advancement of large language models (LLMs) and knowledge enhancement technologies, it's possible to construct a **multimodal, structured, and interactive AI system** for the Pokémon universe. This project builds a knowledge graph covering Pokémon characters, attributes, skills, regions, evolution paths, and more, using data from Baidu Tieba and Wikipedia. It also combines large model capabilities to create a **dedicated intelligent dialogue assistant for the Pokémon world** — "Ke Meng".
On this basis, we integrate **LangGraph reasoning process orchestration**, **LightRAG retrieval enhancement technology**, and **knowledge graph visualization exploration capabilities**, allowing users to obtain precise answers through natural language queries and visually explore the Pokémon world in graph form. It also supports map location functionality based on geographic location, mapping Pokémon world locations to real-world coordinates for **spatial visualization of Pokémon knowledge**.
This project aims to create a **domain-specific intelligent assistant template system** that is transferable, scalable, and oriented towards enthusiasts. You can easily migrate it to other characters to build domain-specific intelligent assistants, requiring only a change in knowledge source and graph structure to achieve high-quality semantic Q&A and visual knowledge exploration experience.
---
## 🚀 New Features
- **LangChain & LangGraph**: Refactored to LangChain 1.x and LangGraph 1.0 multi-agent orchestration dialogue assistant
- **LightRAG Integration**: Supports LightRAG efficient retrieval graph construction
- **Advanced RAG**: Integrated Self-RAG, CRAG, HyDE, and Query Decomposition advanced RAG
- **Agentic Memory**: Possesses user preference adaptive long-term memory and time planning capabilities
- **MCP Service**: Supports Model Context Protocol to connect real-world geographic data
- **Performance**: Built-in Semantic Cache and Speculative RAG acceleration generation
---
## 🎯 System Architecture
Through this project, we not only completed a complete project with vue3+fastapi, but also built an intelligent Q&A system based on the Pokémon knowledge graph. We accumulated rich practical experience in semantic structure modeling, such as bert+tf-idf+rule matching mechanism, and graph fusion and generative Q&A. The system supports accurate Q&A for Pokémon evolution relationships, attribute restraint, skill characteristics, geographic distribution, and more, greatly improving the user experience in interactive exploration.
Core Architecture:
- **Hybrid Retrieval**: Vector Retrieval (Milvus) + Graph Retrieval (Neo4j) + Keyword Retrieval (BM25)
- **Agent Orchestration**: LangGraph1.x state machine manages complex task flows
- **Knowledge Enhancement**: GraphRAG extracts entity relationships
Here's the core technical architecture diagram of our project:
<img src="resources/picture/now.png" alt="图标" style="width: 100%;" />
## 🎯 Project Features
1. Fine-tuned a Pokémon-specific large model — [Ke Meng](https://huggingface.co/qwqqwq/qwen2.5-14b-instruct-pokemon-int4) based on crawled data.
2. Constructed a Pokémon knowledge graph (Wikipedia) based on crawled data.
3. Automatically labeled and trained NER data, using roberta+TF-IDF+rule matching to hit entities and attributes in the graph.
4. Implemented ASR functionality using FunASR (Aliyun open-source speech recognition).
5. Realized MCP service, supporting mapping queries between Pokémon world and real-world geographic coordinates.
6. Extracted DeepDoc from RAGflow to enhance knowledge base parsing and extraction capabilities.
7. Implemented multi-agent collaboration (RAG + Search + Graph + MCP) using LangGraph.
8. Encapsulated agent base class to achieve multi-agent functionality.
9. Supported knowledge graph search, web search, knowledge base search, MCP search, and voice search, which can be integrated simultaneously or selectively.
---
## 🐳 Docker Compose
```bash
# 1. Clone the repository
git clone https://github.com/skygazer42/pokemon-chat.git
cd pokemon-chat
# 2. Configure environment variables (back-end unified reading from the repository root directory `.env`, Docker Compose also loads this file)
cp .env.example .env
# Edit `.env`, fill in LLM API KEY (e.g., llm_api_key / SILICONFLOW_API_KEY)
# Optional: Enable retrieval/tool capabilities (example)
# enable_knowledge_graph=true # Neo4j knowledge graph
# enable_knowledge_base=true # Milvus knowledge base
# enable_web_search=true # Web search (requires tavily_api_key)
# enable_mcp=true # MCP (usually used with `--profile infra --profile mcp`)
# Optional: Enable voice recognition (FunASR) -> enable_asr=true, funasr_url=ws://funasr:10095 (Docker)
# Optional: Limit CORS source (recommended for production environment) -> cors_allow_origins=http://localhost:3100
# 3. Start the service
cd docker
# Default only starts App (API + Web).
docker compose up -d --build
# Optional: Start Infra (Neo4j/MySQL/Milvus, etc.) + automatically import Neo4j graph data (neo4j-bootstrap)
# docker compose --profile infra up -d --build
# Optional: Start MCP SSE service (requires MySQL, usually enabled with infra)
# docker compose --profile infra --profile mcp up -d --build
# Optional: Start voice recognition (FunASR)
# docker compose --profile asr up -d --build
```
Access:
- **Web UI**: http://localhost:3100/
- **API Documentation**: http://localhost:5050/api/docs
### 📦 Data Initialization (first run)
When you use `--profile infra` to start, it will automatically import Neo4j graph data. Data sources:
- `resources/data/kg_data/entities.json`
- `resources/data/kg_data/relations.json`
> Optional: MySQL map data import (execute when map functionality is needed).
> Due to significant environmental differences, this step is not automatically executed by default to avoid affecting "one-click startup".
```bash
cd docker
docker compose exec api python scripts/import_pokemon_map.py
```
If you want to completely clear data (Neo4j/Milvus/MySQL, etc.) and start again (you must have used `--profile infra` to start):
```bash
cd docker
docker compose down
# Delete data directory (Linux/macOS/WSL)
rm -rf volumes/neo4j/data volumes/neo4j/logs volumes/milvus volumes/mysql/data
docker compose --profile infra up -d --build
# Neo4j graph data will be re-imported automatically by neo4j-bootstrap
```
Windows PowerShell:
```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
```
---
## 🔭 Reference Projects
- https://github.com/xerrors/Yuxi-Know
- https://github.com/BinNong/meet-libai
## 📄 License
This project follows the **MIT License**, which allows free use for commercial or personal projects. Please retain the original author and source information for secondary development.
Connection Info
You Might Also Like
awesome-mcp-servers
A collection of MCP servers.
git
A Model Context Protocol server for Git automation and interaction.
cc-switch
All-in-One Assistant for Claude Code, Codex & Gemini CLI across platforms.
Appwrite
Build like a team of hundreds
TrendRadar
TrendRadar: Your hotspot assistant for real news in just 30 seconds.
oh-my-opencode
Background agents · Curated agents like oracle, librarians, frontend...