宝可梦对战AI策略师是一款由Algolia搜索和自然语言处理技术驱动的智能宝可梦对战策略助手。该应用通过对话式AI,提供战略建议、属性相克分析以及竞技洞察。
# 克隆仓库
git clone [repository-url]
cd pokemon_algolia_mcp
# 安装所有依赖(前端、后端和mcp-node)
npm run install:all
# 或者手动安装
npm install
cd frontend && npm install
cd ../backend && npm install
cd ../mcp-node && npm install
cp .env.example .env
.env 中配置环境变量:# Algolia 配置(从 Algolia 控制台获取)
ALGOLIA_APP_ID=your_algolia_app_id
ALGOLIA_API_KEY=your_algolia_search_key
# Anthropic API 密钥(AI 功能所需)
ANTHROPIC_API_KEY=your_anthropic_api_key_here
# 或者
CLAUDE_API_KEY=your_claude_api_key_here
# 服务器配置
PORT=3000
# 同时启动前端和后端
npm run dev
# 或者单独启动
npm run dev:frontend # 仅启动前端 (http://localhost:5173)
npm run dev:backend # 仅启动后端 (http://localhost:3000)
npm run dev # 启动前端和后端
npm run dev:frontend # 仅启动前端(Vite 开发服务器)
npm run dev:backend # 仅启动后端(Express 服务器)
npm run build # 构建前端和后端
npm run build:frontend # 仅构建前端
npm run build:backend # 仅构建后端
npm run test # 运行代码检查和类型检查
npm run clean # 清理所有 node_modules
这是一个包含三个主要包的单仓库项目:
该应用需要进行 Algolia 搜索配置:
设置 Algolia:
pokemon 索引所需环境变量:
pokemon_algolia_mcp/
├── frontend/ # React TypeScript 应用程序
│ ├── src/
│ │ ├── components/ # UI 组件
│ │ │ ├── HybridSearch.tsx # 主搜索界面
│ │ │ ├── AlgoliaStatus.tsx # 连接状态显示
│ │ │ ├── SearchResults.tsx # 宝可梦网格结果
│ │ │ ├── PokemonAnalysis.tsx # 对战分析
│ │ │ ├── CustomInstantSearchResults.tsx # 自定义搜索结果
│ │ │ ├── SearchResultItem.tsx # 单个结果卡片
│ │ │ ├── Header.tsx # 应用程序头部
│ │ │ └── ErrorBoundary.tsx # 错误处理
│ │ ├── services/ # 业务逻辑
│ │ │ ├── algolia-enhanced.ts # 高级 Algolia 集成
│ │ │ └── naturalLanguageSearchEnhanced.ts # 增强的自然语言搜索
│ │ ├── hooks/ # 自定义 React hooks
│ │ │ ├── useAlgoliaSearch.ts # 搜索集成
│ │ │ └── useGSAPAnimations.ts # 动画效果
│ │ ├── types/ # TypeScript 接口
│ │ │ └── pokemon.ts # 数据模型
│ │ ├── utils/ # 实用函数
│ │ │ └── pokemon.ts # 宝可梦辅助函数
│ │ └── data/ # 静态数据
│ │ └── mockPokemon.ts # 演示数据
│ └── package.json
├── backend/ # Express.js 服务器
│ ├── src/
│ │ ├── server.ts # 主服务器文件
│ │ ├── mcpClient.ts # MCP 集成
│ │ ├── routes/ # API 路由
│ │ └── utils/ # 服务器实用工具
│ └── package.json
├── mcp-node/ # Algolia MCP 服务器
│ ├── src/
│ │ ├── app.ts # MCP 服务器实现
│ │ ├── tools/ # MCP 工具
│ │ └── data/ # Algolia API 定义
│ └── package.json
└── package.json # 根工作区配置
该应用使用全面的 TypeScript 接口,涵盖:
"什么宝可梦能对抗喷火龙?"
→ 返回具有属性优势的宝可梦,并给出推理
"适合竞技对战的最佳水系宝可梦"
→ 按属性和竞技可行性进行过滤
"能学会冰光束且速度快的宝可梦"
→ 交叉参考技能集和种族值
"为OU分级组建一支雨天队"
→ 给出队伍组成建议,并进行协同分析
项目使用严格的 TypeScript 和 verbatimModuleSyntax:
import type { Pokemon } from '../types/pokemon'import { charizardData } from '../data/pokemon'应用连接到一个预配置的 Algolia 索引,其中包含宝可梦数据:
pokemon1. 依赖安装问题
# 如果 npm install 失败,尝试清除缓存
npm cache clean --force
npm run clean
npm run install:all
2. 端口冲突
3. 环境变量问题
# 确保根目录存在 .env 文件
cp .env.example .env
# 为 AI 功能添加你的 Anthropic API 密钥
4. TypeScript 错误
# 运行类型检查
npm run test
# 检查各个包
cd frontend && npm run lint
cd backend && npm run type-check
5. 搜索功能不起作用
backdrop-blur-lg项目最近进行了一次重大清理,以减少技术债务:
已移除文件(共 26 个):
当前架构优势:
naturalLanguageSearchEnhanced.ts 中的接口types/pokemon.ts 中的 TypeScript 接口algolia-enhanced.ts 中实现,并进行适当的错误处理本项目是开源的,采用 MIT 许可证。
欢迎贡献代码!请查看我们的贡献指南以获取更多信息。
为宝可梦竞技社区而打造