2026山东大学软件学院项目实训个人博客(四)
一、进展概述
近期我们完成了语言训练模块中看图说话功能的开发,使患儿能够通过观察图片并回答由浅入深的问题来提升语言表达能力。系统会根据回答情况提供引导式反馈,支持多次补充回答,形成持续迭代的训练闭环。
二、功能设计
看图说话系统包含以下核心模块:
1. 图片生成模块 :调用通义千问图片生成API,根据难度等级自动生成适合儿童的训练图片
2. 问题生成模块 :基于图片内容自动生成由浅入深的问题序列
3. 语义分析模块 :判断用户回答的完整度(完整/基本完整/不完整)和缺失信息类型(缺少主语/宾语/细节等)
4. 引导反馈模块 :根据分析结果生成鼓励性反馈,引导用户逐步完善表达
5. 难度自适应模块 :根据训练结果动态调整后续任务难度
三、核心功能实现
3.1前端实现
看图说话功能在 PictureTalkGame.kt 中完整实现,主要包含以下核心部分:
游戏状态管理:
// 游戏状态 var imageUrl by remember { mutableStateOf("") } var questions by remember { mutableStateOf(listOf<String>()) } var currentQuestion by remember { mutableStateOf("") } var questionIndex by remember { mutableStateOf(0) } var sessionId by remember { mutableStateOf("") }API交互:通过 ApiClient.pictureTalkApiService 调用后端接口,实现游戏启动和回答提交
UI交互:支持加载状态、错误处理、反馈展示、完成统计等完整交互流程
3.2后端实现
后端在 app.py 中实现了三个核心接口:
启动接口/api/picture-talk/start :生成训练图片并创建问题列表
# 生成训练图片 image_url = generate_image(image_prompt) # 生成问题 questions = generate_questions(image_url, level)回答接口/api/picture-talk/answer :分析用户回答并返回引导反馈
# 分析回答完整性 analysis = analyze_answer(session['imageUrl'], current_question, user_answer)3.3数据模型
定义了完整的数据结构支持前后端交互:
| 模型 | 用途 |
| PictureTalkRequest | 请求参数(难度等级、用户回答、问题索引) |
| PictureTalkResponse | 响应结构 |
| PictureTalkData | 包含图片URL、问题列表、反馈信息等 |
四、训练流程
系统形成完整的"图片呈现→问题生成→用户作答→语义分析→引导反馈→再次表达→结果记录"闭环逻辑:
1. 图片呈现 :展示AI生成的训练图片
2. 问题生成 :根据图片内容和难度等级生成问题序列
3. 用户作答 :通过文本输入框提交回答
4. 语义分析 :判断回答是否包含主语、动作、对象等语言要素
5. 引导反馈 :生成鼓励性反馈(如"很好!"或"他在做什么呢?")
6. 持续迭代 :支持多次补充回答直到达到训练目标
7. 结果记录 :记录本轮训练数据并更新用户能力等级
五、后续计划
下一步我们计划引入更多和AI结合的功能,包括:
- 支持语音输入输出,增强交互体验
- 根据用户语言能力等级自动调整训练难度
- 添加更多语言训练场景和题型
- 引入家长端功能,方便监督学习进度
