基于 Spring Boot 与大语言模型的海龟汤推理小游戏设计与实现
基于 Spring Boot 与大语言模型的海龟汤推理小游戏设计与实现
本文记录一次 Java 课程设计项目的完整开发过程:
通过 Spring Boot 构建后端服务,引入大语言模型作为裁判,实现一个可交互、可重复游玩的海龟汤推理网页小游戏。
代码开源网址:https://github.com/DOKIYBEKIY/turtle-soup-ai
一、我的想法
在课程设计选题阶段,我希望完成一个具备实际可玩性的项目,而不仅仅是控制台程序。
海龟汤游戏本身具有以下特点:
- 强逻辑性,适合推理过程建模
- 依赖自然语言理解,传统规则难以覆盖
- 游戏流程明确,适合做完整闭环设计
因此,我的初始目标是:
- 使用 Java 构建完整后端服务
- 通过网页进行交互,而非控制台
- 引入大语言模型作为“裁判”
- 项目最终能做到“真的能玩”
二、实现思路
整体实现思路可以概括为三点:
-
Spring Boot 负责流程控制
- 游戏状态管理
- 接口调度
- 日志记录
-
前端只做最小逻辑
- 页面展示
- 用户输入
- 弹窗反馈
-
AI 专注语义判断
- 回答是 / 否 / 无关
- 判断是否已复盘出完整汤底
这种分工可以最大程度减少规则代码复杂度。
三、总体框架
整体架构采用典型的前后端分离模式:
浏览器(HTML + JS)
↓ HTTP
Spring Boot 后端
↓
AI服务(大语言模型)
后端作为核心调度层,负责:
- 汤题加载
- 游戏状态维护
- AI 调用与结果解析
四、模块划分与分包设计
项目主要包结构如下:
com.example.turtle_soup_ai
├── controller // 接口层
├── domain // 数据模型
├── service // 业务逻辑层
└── resources // 静态资源与配置文件
各包职责说明
controller
- 提供
/start、/ask、/guess等接口 - 仅负责请求转发,不包含业务逻辑
domain - 定义核心数据模型(GameSession)
- 封装业务数据的结构与属性
service - 管理当前游戏会话状态(GameService)
- 控制题目轮换
- 调用 AI 服务并解析结果(如AIService)
resources - static/index.html:前端页面入口
- application.yaml:项目配置文件
这样分包避免controller过于臃肿
五、核心代码片段
问题一:题目喝完后页面卡死
- 现象:
提示“喝完所有汤”后无法重新开始
- 原因:
使用浏览器 alert,中断了逻辑流程
- 解决:
使用自定义终局弹窗;增加 reset 接口重置题库状态
七、功能实现与迭代
1. 基础功能
游戏开始
提问 / 放弃
AI 判断是 / 否 / 无关
2. 拓展功能
AI 胜利判定
题目不重复机制
胜利 / 终局弹窗
游戏完整重置
功能按照“先能玩 → 再好玩”的顺序逐步迭代。
八、效果展示
【此处插入主界面运行截图:展示汤面与提问区】
【此处插入胜利弹窗截图:展示 WIN 提示】
【此处插入终局弹窗截图:展示全部题目完成】
九、优化方向与技术总结
可优化方向
历史回顾页面,完整复盘推理过程
多难度胜利判定策略
前端状态管理进一步抽象
技术总结
通过本次课程设计,我完整实践了:
Spring Boot Web 项目结构设计
REST 接口设计与调试
大语言模型的工程化使用

浙公网安备 33010602011771号