一、项目背景

        在原有的 StarMate 训练系统中,主要内容集中在专注力、记忆力和反应能力训练上。这些游戏对基础能力培养很有帮助,但如果希望进一步提升孩子的语言表达能力、想象力和叙事能力,就需要加入更偏表达型的训练内容。

        因此,我新增并完善了“故事续写”模块,同时对练习主页面进行了分类重构,让整个系统更符合实际训练目标,也更适合儿童使用。

二、故事续写模块实现思路

2.1 AI生成题目

        为了保证每次练习都有新鲜感,故事开头不是写死在代码里的,而是由 AI 根据主题生成。例如系统会围绕以下主题生成不同的开头:

  • 森林探险
  • 校园生活
  • 友谊与分享
  • 帮助他人

        这使得题目更有变化,也更适合长期使用。

# 示例:故事开头生成逻辑
theme = data.get('theme') or random.choice(['森林探险', '校园生活', '友谊与分享', '帮助他人'])
reply = call_qianwen_api([
    {'role': 'system', 'content': '你是一位专业的儿童故事创作老师,只返回JSON。'},
    {'role': 'user', 'content': prompt}
])
ai_result = _extract_json_object(reply) or {}
opening = str(ai_result.get('opening') or '').strip()

2.2 语音输入支持

        考虑到小朋友可能不方便打字,这个模块支持语音输入。孩子可以直接说出自己的故事内容,系统将语音转成文字后用于提交评审。这一步降低了操作门槛,也更符合儿童表达习惯。

2.3 提交评审逻辑

        孩子完成续写后,点击“提交并评审”,系统会把故事开头和孩子的续写内容发送到后端,再由 AI 进行评分和反馈。

        后端会重点评估:

  • 逻辑是否通顺
  • 情节是否自然
  • 是否具备因果关系
  • 是否适合继续往下创作
fun reviewStory() {
    if (opening.isBlank() || userStory.isBlank()) {
        showError = true
        errorMessage = "请先完成故事续写"
        return
    }

    isSubmitting = true
    showError = false
    coroutineScope.launch {
        try {
            val durationSec = ((System.currentTimeMillis() - startTimeMs) / 1000).toInt()
            val response = withContext(Dispatchers.IO) {
                ApiClient.storyContinuationApiService.reviewStory(
                    StoryContinuationRequest(
                        sessionId = sessionId,
                        userId = userId.ifBlank { null },
                        opening = opening,
                        userStory = userStory,
                        durationSec = durationSec,
                        level = level,
                        theme = theme
                    )
                )
            }
            // ...后续处理
        } catch (e: Exception) {
            showError = true
            errorMessage = "网络连接失败: ${e.message}"
        } finally {
            isSubmitting = false
        }
    }
}

三、练习主页面的分类重构

        除了新增故事续写,我还对练习主页面的分类结构进行了整理。之前页面更像是游戏列表,现在则按照训练目标重新归类,让结构更清楚。

新的分类方式

  • 专注训练:舒尔特方格、西蒙说、快速点击
  • 记忆训练:位置记忆、顺序记忆
  • 语言表达:看图说话、故事续写
  • 情绪表达:情绪模仿

四、总结和未来规划

        本次开发主要围绕 StarMate 的练习系统进行了功能完善与体验优化。我新增并完善了“故事续写”模块,将 AI 生成题目、语音输入和自动评审结合起来,帮助孩子在轻松的互动中锻炼语言表达、逻辑思维和想象力;同时,我也对评审结果进行了优化,让反馈更简短、更温和,更符合儿童用户的阅读习惯。除此之外,我还对练习主页面进行了分类重构,把原先的游戏列表按照训练目标重新整理为专注训练、记忆训练、语言表达和情绪表达等分类,使页面结构更加清晰,用户也能更快找到适合自己的练习内容。整体来看,这次开发不仅补充了新的语言训练能力,也提升了系统的易用性和儿童友好性。后续我还计划继续丰富故事续写的题目类型,进一步优化 AI 反馈体验,并结合用户使用情况持续调整页面结构和交互细节,让整个应用更适合儿童长期使用。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐