一个基于LLM的游戏应用,支持猜词游戏和角色扮演等多种游戏模式。
本项目是一个使用Python FastAPI和React构建的Web应用,通过与大型语言模型(LLM)交互来提供游戏体验。目前实现了猜词游戏功能,支持隐藏答案和自动评分功能。
- 前端: React + Ant Design
- 后端: Python FastAPI
- 数据库: MySQL
- 认证: OAuth2 + JWT
-
用户认证
- 用户注册和登录
- JWT令牌认证
-
猜词游戏
- LLM生成隐藏答案
- 用户通过提问猜测答案
- 自动评分系统
-
游戏会话管理
- 创建和管理游戏会话
- 保存和加载会话历史
-
排行榜系统
- 记录用户得分
- 显示全球排行榜
- Python 3.9+
- Node.js 14+
- MySQL 5.7+
- 进入后端目录并安装依赖:
cd backend
pip install -r requirements.txt
- 初始化数据库:
python init_db.py
- 启动后端服务:
python run.py
- 进入前端目录并安装依赖:
cd frontend
npm install
- 启动前端开发服务器:
npm run dev
项目提供了多个脚本文件,简化启动流程:
- 初始化数据库:
cd scripts
python init_db.py
- 启动后端服务:
cd scripts
python start_backend.py
- 启动前端服务:
cd scripts
python start_frontend.py
- 一键启动所有服务:
cd scripts
python run_all.py
.env文件中
DEBUG=True
PORT=8000
HOST=0.0.0.0
LLM_API_URL=https://open.bigmodel.cn/api/paas/v4/chat/completions
LLM_API_KEY=your_key
LLM_MODEL_NAME=glm-4-plus
DATABASE_URL=mysql+pymysql://root:123456@localhost:3306/llm_game
SECRET_KEY=09d25e094faa6ca2556c818166b7a9563b93f7099f6f0f4caa6cf63b88e8d3e7
mysql
docker run --name mysql-llm -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest
✅ 数据库初始化: 成功创建数据库表并初始化游戏规则和测试用户
✅ 用户认证: 登录/注册功能正常运行,使用FormData格式符合OAuth2标准
✅ 游戏规则获取: 成功获取服务器上的游戏规则
✅ 创建游戏会话: 成功创建新的游戏会话,获取LLM初始响应
✅ 游戏交互: 成功与LLM进行多轮对话,隐藏答案功能正常
✅ 游戏评分: 自动评分系统正常工作,能根据游戏过程给出合理分数
✅ 排行榜显示: 成功获取和显示用户排行榜
-
CORS问题修复: 更新了后端CORS配置,允许前端跨域访问
-
登录格式修复: 修改了登录请求格式,使用FormData而非JSON,兼容OAuth2
-
数据库模型修复: 修改了属性访问方式,解决了
property
对象的兼容性问题 -
游戏会话创建修复: 修正了
history
与history_json
的参数使用问题
- 用户名: test
- 密码: password
- 前端: http://localhost:5174
- 后端API: http://localhost:8000/api
- 添加更多游戏类型
- 实现多人对战功能
- 优化UI交互体验
- 添加用户成就系统