Skip to content

fangguen/llm-game-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LLM游戏应用

一个基于LLM的游戏应用,支持猜词游戏和角色扮演等多种游戏模式。

项目说明

本项目是一个使用Python FastAPI和React构建的Web应用,通过与大型语言模型(LLM)交互来提供游戏体验。目前实现了猜词游戏功能,支持隐藏答案和自动评分功能。

项目架构

  • 前端: React + Ant Design
  • 后端: Python FastAPI
  • 数据库: MySQL
  • 认证: OAuth2 + JWT

功能特性

  1. 用户认证

    • 用户注册和登录
    • JWT令牌认证
  2. 猜词游戏

    • LLM生成隐藏答案
    • 用户通过提问猜测答案
    • 自动评分系统
  3. 游戏会话管理

    • 创建和管理游戏会话
    • 保存和加载会话历史
  4. 排行榜系统

    • 记录用户得分
    • 显示全球排行榜

安装与运行

环境要求

  • Python 3.9+
  • Node.js 14+
  • MySQL 5.7+

后端安装

  1. 进入后端目录并安装依赖:
cd backend
pip install -r requirements.txt
  1. 初始化数据库:
python init_db.py
  1. 启动后端服务:
python run.py

前端安装

  1. 进入前端目录并安装依赖:
cd frontend
npm install
  1. 启动前端开发服务器:
npm run dev

使用脚本启动(推荐)

项目提供了多个脚本文件,简化启动流程:

  1. 初始化数据库:
cd scripts
python init_db.py
  1. 启动后端服务:
cd scripts
python start_backend.py
  1. 启动前端服务:
cd scripts
python start_frontend.py
  1. 一键启动所有服务:
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进行多轮对话,隐藏答案功能正常

游戏评分: 自动评分系统正常工作,能根据游戏过程给出合理分数

排行榜显示: 成功获取和显示用户排行榜

项目修复记录

  1. CORS问题修复: 更新了后端CORS配置,允许前端跨域访问

  2. 登录格式修复: 修改了登录请求格式,使用FormData而非JSON,兼容OAuth2

  3. 数据库模型修复: 修改了属性访问方式,解决了property对象的兼容性问题

  4. 游戏会话创建修复: 修正了historyhistory_json的参数使用问题

测试账号

  • 用户名: test
  • 密码: password

浏览器访问

后续开发计划

  • 添加更多游戏类型
  • 实现多人对战功能
  • 优化UI交互体验
  • 添加用户成就系统

About

111

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published