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="icon" style="width: 27%;" />
# Tool List








---
## 📋 Changelog
<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 workstation: batch import, retrieval test, and block management
- New Rotom-Dex OS theme, supporting dark mode
### Improvements
- 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 Agent mode multiple crash issues (tool_calls check, closure binding, race condition)
- Fixed knowledge base search parameter not taking effect, L2 distance display error
- Fixed Neo4j no-password mode connection failure
- 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 upgrade, 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 worldview setting and massive character data. After years of accumulation in games, anime, trading cards, and movies, its knowledge system is complex and highly structured, making it suitable for knowledge graph modeling and intelligent Q&A scenarios.
With the development of large language models (LLM) and knowledge enhancement technology, it is possible to construct the Pokémon universe as a **multi-modal, structured, and interactive AI system**. This project builds a knowledge graph covering Pokémon characters, attributes, skills, regions, evolution paths, and other elements based on data sources like Baidu Tieba and Wikipedia. Combining large model capabilities, it creates 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 questions 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 and achieving **spatial visualization of Pokémon location knowledge**.
This project aims to build a **domain-specific intelligent assistant template system** that can be migrated and expanded by enthusiasts. You can easily migrate it to other roles to create 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 completed a complete project using vue3 + fastapi, and constructed 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's evolution relationships, attribute restraint, skill characteristics, geographic distribution, and other content, greatly improving the user's experience in interactive exploration.
Core Architecture:
- **Hybrid Retrieval**: Vector retrieval (Milvus) + Graph retrieval (Neo4j) + Keyword retrieval (BM25)
- **Intelligent Agent Orchestration**: LangGraph1.x state machine manages complex task flow
- **Knowledge Enhancement**: GraphRAG extracts entity relationships
Here is the core technical architecture diagram of our project:
<img src="resources/picture/now.png" alt="icon" style="width: 100%;" />
## 🎯 Project Features
1. Fine-tuned a Pokémon-specific large model based on crawled data - [Ke Meng](https://huggingface.co/qwqqwq/qwen2.5-14b-instruct-pokemon-int4).
2. Constructed a Pokémon knowledge graph based on crawled data (Wikipedia).
3. Automatically annotated 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 the mapping query of Pokémon world and real-world geographic coordinates.
6. Extracted DeepDoc from RAGflow to enhance the parsing and extraction capabilities of the knowledge base.
7. Implemented multi-agent collaboration using LangGraph (RAG + Search + Graph + MCP).
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 will also load this file)
cp .env.example .env
# Edit .env and 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: restrict CORS source (recommended for production environment) -> cors_allow_origins=http://localhost:3100
# 3. Start service
cd docker
# Default only start 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 function is needed).
> Due to large 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 clear data (Neo4j/Milvus/MySQL, etc.) and start again (you 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 can be used freely 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...