proposal.md 1.7 KB

Why

当前 DialogueChatView.vue 的对话逻辑全部基于硬编码的 mock 脚本,没有真实的录音采集、LLM 对话、发音评估能力。要让学生能够进行真正的英语口语对话练习,需要将 mock 替换为完整的前后端对话链路。

What Changes

前端

  • 将对话引擎从 UI 组件中解耦为独立的 service + composable 三层架构
  • 新增 LLM 流式通信能力,支持逐 token 渲染 AI 回复
  • 新增浏览器端录音采集能力,含权限处理
  • 重构 DialogueChatView.vue 为纯 UI 层,移除所有 mock 逻辑
  • 新增消息状态机(loading / done / error)和重试机制
  • AI 消息完成后调用 TTS 合成语音并播放
  • 后端控制对话时长,前端展示倒计时

后端

  • 新建独立编排服务 cococlass-english-speaking-api,串联 ASR、LLM、发音评估
  • 提供对话创建、语音对话(流式)、报告查询三个接口
  • 发音评估后台静默执行,不阻塞对话流程

Capabilities

New Capabilities

  • dialogue-engine: 对话引擎核心——消息状态机、轮次控制、重试、流式输出
  • audio-recording: 录音采集——MediaRecorder 封装、权限处理
  • llm-streaming: LLM 流式通信——fetch + ReadableStream SSE 解析、超时控制、错误处理

Modified Capabilities

(无已有 specs 需要修改)

Impact

  • 前端:EnglishSpeaking preview 模块重构(DialogueChatView 及关联组件),扩展消息类型定义,新增 composables 和 service 层。无新增 npm 依赖,使用浏览器原生 API
  • 后端:新增独立项目 cococlass-english-speaking-api,需要 MySQL、S3、Azure Speech、One-Hub 等外部依赖