Files
English/Doc/AI-CONVERSATION-PRD.md
shenleiandClaude Opus 5 efdff769e4 docs: 学习目标定为日常与旅行,重写学习路线与词汇分层规格
- 取消学习目标选择,不做学校场景,工作场景延后
- 词汇分两层:核心表达与分级词池,写明词池来源与校验方式
- 补充复习节点、掌握判定与阶段评估的规则说明

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 18:52:01 +09:00

258 lines
18 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 开口英语(暂定名)— AI 对话模块规格
> 版本:1.32026-09-17
> 模块定位:总产品中负责口语输出与真实情境练习的核心模块
> 核心承诺:每天 5–10 分钟,完成一次你在真实生活中用得上的英语对话。
## 1. 模块决策
M1 范围和异常验收以 [开发与验收约定](M1-IMPLEMENTATION-CONTRACT.md) 为准,阶段通过以 [A0 阶段标准](A0-STAGE-STANDARD.md) 为准。本文 A1/A2 场景仅为后续示例。
总产品保留分级课程、词汇句型、听说读写练习、个性化复习和学习进度。AI 对话是其中承接“开口输出”的核心模块:它接收课程学到的词句,并在真实情境中让用户练习使用。
不做用户与用户之间的社交匹配、群聊或公开动态。用户打开“对话”页后,选一个生活场景,用语音或文字与 AI 完成一段有目标的英文对话;结束后获得少量、准确、可立即重说的反馈。所有功能都必须帮助用户更敢说、更能说。
## 2. 目标用户与问题
目标用户是中文母语、英语 A0–A2 的成人。他们常见的困难是:知道一些单词,却无法在真正的场景中及时组织语言;害怕出错,也没有稳定、安全的开口对象。
产品解决的问题不是“教完所有英语知识”,而是让用户反复经历:听到一句英语 → 用自己会的英语回应 → 被理解 → 获得一个可改进点 → 再说一次。
## 3. 最小产品闭环
```text
选择场景
→ 选择身份与难度
→ 与 AI 进行语音或文字对话
→ 完成明确任务
→ 获得简短反馈
→ 重说关键句 / 明天继续练习
```
M1 通常 3–5 分钟,最多 5 个用户回答轮;简单种子任务达标后可以提前结束,不为凑轮数追问。用户能点“提示”“慢一点”“翻译”“重说”;求助不终止练习,但须记录辅助情况。达到轮数上限未完成目标时标记未完成并提供补练,不自动判成功。
## 4. 首版页面
| 页面 | 目的 | 必须内容 |
|---|---|---|
| 欢迎与定位 | 了解用户起点 | 每日时长、可跳过的 3 分钟口语测评;学习目标固定为日常与旅行,不做选择 |
| 对话入口 | 让用户立刻开口 | 一个推荐场景、继续上次对话 |
| 场景页 | 让用户自主选择练习任务 | 分级场景卡、目标、预计时长 |
| 对话页 | 完成交流 | AI 回复、语音/文字输入、求助按钮、进度提示 |
| 总结页 | 把对话转成成长 | 完成目标、一个改进点、重说、加入复习 |
| 我的 | 看见可用能力 | 已完成场景、常用句、需复习表达、目标 |
总首页仍以“今天的课程或到期复习”为唯一主任务;进入“对话”页后,其主要按钮是 `开始推荐对话`。课程目录由“学习”页管理,不与对话入口冲突。
## 5. 对话模式
### 5.1 情境任务(首版核心)
用户选择一个真实情境,AI 扮演相关角色,双方完成可验证的任务。AI 在必要时以中文给出极短提示,但对话本身以英文进行。
后续 A1 示例(不是 M1 起始场景;M1 使用姓名、物品、喜好等 A0 任务):
```text
场景:咖啡店
用户身份:顾客
AI 身份:店员
目标:点一杯饮料,并确认订单。
AI: Hi! What would you like?
用户: Id like a tea, please.
AI: Sure. Hot or iced?
用户: Hot, please.
AI: Great. One hot tea. Is that all?
```
### 5.2 自由对话(M1 后)
完成 M1 的受控任务型对话后,用户可选择主题,如“介绍自己”“我的周末”“旅行计划”,与 AI 自由聊天。系统仍保留等级上限、轮次上限和主题边界,避免 AI 把零基础用户带入超出能力的复杂讨论。
自由对话的首页文案不应是“和 AI 聊任何事”,而应是“聊一个你想练的主题”。
## 6. 首批场景与完成条件
| 等级 | 场景 | 用户目标 | AI 的完成判定 |
|---|---|---|---|
| A0 | 初次见面 | 说姓名和来自哪里 | 用户表达姓名、地点;完成一次问候 |
| A0 | 认识新同学 | 问对方姓名 | 完成至少一问一答 |
| A0 | 说喜欢什么 | 说一种喜欢的食物/活动 | 说出 `I like ...` 或等义表达 |
| A1 | 咖啡店 | 点饮料 | 饮品 + 礼貌表达 + 确认 |
| A1 | 餐厅 | 点餐/询问推荐 | 提出一项需求和一个问题 |
| A1 | 超市 | 寻找商品 | 询问商品位置并理解回答 |
| A1 | 问路 | 找到车站 | 问地点并复述一项方向 |
| A1 | 打车 | 到达目的地 | 说清目的地并确认路线/价格之一 |
| A1 | 酒店入住 | 办理入住 | 姓名 + 预订/入住需求 |
| A1 | 约时间 | 约见面 | 提议时间并完成确认 |
| A1 | 生病求助 | 描述简单不适 | 说一个症状并回应一次追问 |
| A2 | 聊兴趣与家乡 | 交流周末、兴趣和家乡 | 连续完成 5 轮相关回应 |
A1 起的完整场景以《学习引擎规格》5.2 主题地图为准,上表只是示例。M1 先提供与 A0 核心课对应的受控对话;这些场景是起始内容,不是 A0 的对话总量。若出口能力尚未达标,系统继续围绕同阶段的薄弱点生成受控变式对话;A1 的生活场景和 A2 内容均作为后续扩展。
## 7. 分级与对话控制
### 7.1 轻量定位
首次可选择基础并完成 3 分钟轻量定位。M1 只推荐 A0 内的起点,不标记阶段通过,不解锁 A1;用户可以回退或申请正式出口评估。
### 7.2 AI 对话规则
| 项目 | A0 | A1 | A2 |
|---|---|---|---|
| AI 单轮长度 | 一个短问题,可加一个简短回应词块;整轮不超过 20 个英文词 | 1–2 句 | 23 句 |
| 额外新词 | 每轮最多 1 个、整段最多 2 个,先教后用;评估为 0 | 后续阶段规范定义 | 后续阶段规范定义 |
| 提问方式 | 单一、明确问题 | 单一任务或问题 | 可有追问 |
| 语速 | 慢速默认 | 正常/慢速可切换 | 正常语速 |
| 中文辅助 | 教学可见;独立听力和评估隐藏 | 按需显示 | 用户主动请求 |
AI 必须记住当前场景、用户身份、完成目标、已知信息及难度上限。它不能突然转换角色、重复问已回答的问题,或为了“自然聊天”而跳过任务目标。
给模型的指令必须把两件事分开:**本轮 AI 自己要说什么**,以及**学习者随后要完成什么任务**。两者混成一句会让模型替学习者把答案说出来。同时下发可用语言清单,但清单只作为模型的参考,不要求模型只能从清单里的短语拼句子;否则像 `What day is it today?` 这类已教句型也会因拆词不在清单而被模型回避。清单外词数由客户端统计,A0 每轮最多 1 个,超出按 7.3 的检查处理。
模型只需返回 `reply`(英文回复);`translation`(中文翻译)与 `feedback`(一句中文点评)可选,缺少可选字段不丢弃整条回复。是否完成任务由客户端按本轮必需表达判定,不采信模型的完成声明。回退示范句时必须在对话页说明原因,并区分两种情况:AI 不可用(网络、服务或返回格式错误)时提示“AI 暂时无法连接”;AI 有回复但没通过检查时提示“这一句换成了示范句”。两种都不能让备用文案冒充 AI 回复。
### 7.3 场景、任务与对话调度
对话不再以“脚本第 N 句”作为 AI 目标,而由三层数据和一个本地调度器驱动:
| 层 | 内容 | 来源 |
|---|---|---|
| LevelProfile(等级档) | 每轮英文词数上限、每轮问题数、清单外词上限、是否允许追问、中文辅助规则(即 7.2 表格) | 按等级固定在程序中 |
| Scene(场景) | 场景 ID、学习者与 AI 身份、背景、开场句、任务列表 | 冻结的单元内容包 |
| Task(任务) | 任务 ID、目标、引用的核心词句 ID、信息槽、示范句 | 冻结的单元内容包;判定条件(cues/done)由程序根据引用的词句 ID 编译 |
每一轮的调度步骤:
1. 客户端先在本地判定用户这句话完成了哪些任务、填了哪些信息槽,不等 AI;
2. 调度器按任务顺序选出下一个未完成任务;全部完成则收尾并进入总结;
3. 请求 AI 时下发:等级档、场景、**当前任务目标**、已收集的信息、可用语言清单、历史;要求先回应用户说的内容,再推进当前任务,一轮只推进一个任务;
4. 客户端检查 AI 回复:
- 通用检查:非空、是英文、不超过词数上限、问题数不超过上限、清单外词不超过上限、不替学习者说出答案、不重复问已收集的信息;
- 任务检查:回复确实在推进当前任务(包含任务的提问线索,或是收尾语);
5. 检查不通过时带着具体原因重试一次;仍不通过则使用当前任务的示范句,并按 7.2 提示“这一句换成了示范句”。
技术约定:
- 请求与返回均为 JSON;服务支持时开启 JSON 输出(如 DeepSeek 的 `response_format: {type: json_object}`)。历史中的 AI 轮同样以 `{"reply": ...}` 的 JSON 形式回放;若历史是纯文本,模型会跟着回纯文本或空白,导致误判为 AI 不可用。
- 调用支持思考模式的模型时关闭思考,以控制延迟和费用。
- 判定、计数和检查全部在客户端完成,模型返回的完成标记只作参考。
### 7.4 场景数据从哪里来
- **主线场景**:随单元内容包离线生成、校验、审核并经用户确认后冻结,流程见《学习引擎规格》第 5 节。运行时不生成主线场景。
- **运行时变式**:AI 只能替换表面内容(人名、地点、物品、喜好等内容值,以及措辞和句子顺序),任务、引用的词句 ID 和判定条件保持不变;变式句同样要过 7.3 的通用检查。
- **A0**:由现有课程对话脚本(`LessonDialogue`)转换为 Scene/Task;脚本中的问句作为任务示范句,`requiredTerms` 映射到 A0 核心词句 ID 后作为任务引用。脚本里的指令或操练轮(如“再说一遍”“跟我读”)不交给 AI,改为固定句。
- **A2 及以上**:开放任务在 7.3 的检查之外,还按《学习引擎规格》5.8 用评分标准加 AI 评审判定完成。
## 8. 对话交互细节
### 8.1 输入与输出
- 默认鼓励语音,提供清晰的按住说话或点击录音入口。
- 录音后转写,设备支持时可显示中间结果;发送前允许确认、编辑。M1 不依赖实时转写能力。
- AI 以文字 + 可播放语音回复;支持慢速播放、逐句重放。
- 用户也能纯文字完成同一场景,保证在公共场所或静音环境下可用。
- 低可信度、没有可靠置信度、结果异常或用户质疑时,先显示“我没有完全听清”,让用户确认、修改或重说;不得直接判为语言或发音错误。修改转写仅保留文字表达证据,不算独立口语;所有确认/修改均保存标记。
- AI 消息及课程转写稿中的英文支持点词/点短语。弹出的查词卡优先解释完整短语,再解释单词;显示当前语境中文意思、播放、慢速和一个已学例句,可手动加入复习。关闭卡片后回到同一轮会话,AI 不重新生成回复。
### 8.2 四个固定求助按钮
| 按钮 | 行为 |
|---|---|
| 提示 | 给出 1 个当前轮次可用的短句框架,不直接代答 |
| 慢一点 | 用更慢音频重复 AI 上一句 |
| 翻译 | 显示 AI 上一句自然中文意思 |
| 重说 | 重新播放 AI 上一句,不改变对话状态 |
| 查词 | 点消息中的词或短语,查看当前语境释义和例句;关闭后回到当前轮 |
### 8.3 纠错时机
对话中不逐句打断。只有以下情况给出一行内的提示:用户请求帮助、表达无法理解,或本场景关键目标无法达成。
对话结束后才给完整的微反馈,且一次最多一个语言问题。零基础用户首先需要成功表达,不需要一次性接受语法课。
模型每轮返回的 `feedback` 只保留最后一条,在对话结束页和总结页以“下一次说得更好”呈现,不在对话过程中逐轮弹出。
M1 发音反馈限示范音、慢放、录音回听和可选通用练习,不评价像不像母语者。`three` 多次被转写为 `free` 可能是噪声或 ASR 错误,不能据此诊断 /θ/ 或降低掌握度;可在用户选择后展示通用对比词与动作提示,并标注“非个性化发音诊断”。真正的音素诊断需要音频证据和验证过的能力,后续另行评估。
## 9. 会话总结与复习
每次结束页必须有:
1. `你完成了什么`:以任务结果描述,如“你成功点了一杯热茶。”
2. `本次做得好的句子`:摘取一个用户的有效表达。
3. `下一次说得更好的句子`:只给一个纠正或更自然替换。
4. `再说一次`:用户立即录音重说该句,形成一次闭环。
5. `后续练习`:新教或需补救的目标进入次日复习,已有稳定词句保留原到期时间;同词句与其他复习原因合并,不因每次对话总结而强制明日重练。
复习优先采用 30–60 秒微对话,并结合听辨、回忆和改写,覆盖不同证据类型。M1 例如换人物再问姓名或状态。断网时使用审核过的本地/缓存模板及本地答案规则;自由回答不能可靠判定则保存 pending。不能把在线微对话作为复习的唯一途径。
教学态中查词是正常帮助;其使用情况随 attempt 保存,便于下一次优先安排认识/回忆练习。独立练习和出口评估隐藏查词入口;用户选择查词时,将当前题转为教学练习并换一题补测,不把它记为对话失败。
课程内对话与结尾独立尝试计入教学段预算,不额外叠加时间。可在最后一轮换已教内容值并撤掉句框/翻译,取得该轮独立证据;前面教学使用帮助不污染后面已明确切换的独立任务,但原题立即复述不算迁移。第 10 课按“问候、姓名、地点、状态/喜好、反问”五项统一判定,前四项齐全后须留用户提问机会,AI 回答再结束;达到五轮上限仍缺项则给待补练结果。
## 10. AI 提示词与质量要求
AI 系统需要传入结构化上下文:等级档、母语、场景、角色、当前任务目标(而不是脚本原句)、已收集的信息槽、可用语言清单、轮次、求助状态与安全限制。返回格式为 JSON,检查与回退按 7.3。
词句的掌握状态、允许的新语言数量、失败后的降级练习,以及阶段出口任务,须遵循 [学习引擎规格](LEARNING-ENGINE-SPEC.md)。
AI 行为要求:
- 做友好、耐心的英语对话伙伴,默认使用目标等级的英语。
- 先回应含义,再推进任务;不把每句用户话改写成教学讲解。
- 只在用户需要时用简短中文辅助;不使用抽象语法术语。
- 任务完成后自然收尾,转入总结页,不无限聊天。
- 不假装真人;不输出仇恨、色情、自伤、违法或高风险专业建议。
- 医疗等场景只练习表达需求,明确不提供诊断或治疗建议。
## 11. 功能验收标准
| 功能 | 验收标准 |
|---|---|
| 场景开始 | 用户从首页进入一个推荐场景不超过两次点击 |
| 语音对话 | 用户可完成至少 3 轮录音回复,识别失败时仍能编辑或改用文字继续 |
| 难度控制 | A0 每轮最多一个明确问题,可加简短回应/开场词块,总计不超过 20 个英文词,不连问姓名和地点 |
| 目标判定 | A0 初次见面场景提取姓名、地点和问候证据;客户端检查信息槽,不只采信 AI 完成标记 |
| 任务对齐 | 每轮 AI 回复先回应用户内容,再推进调度器选定的当前任务;不重复问已收集的信息;未通过检查时重试一次,仍失败则回退示范句并按 7.2 提示原因 |
| 求助 | 四种求助操作不丢失当前会话状态 |
| 总结 | 每段会话都生成一个积极反馈、一个改进句和一次立即重说机会 |
| 复习 | 次日出现短变式或本地模板练习;技术失败不改变掌握度 |
## 12. 模块边界
- 本模块不替代课程视频、文章、词汇、语法讲解和书写练习;这些仍由总产品的学习与复习模块提供;
- 用户之间的匹配聊天、群聊、排行榜和公开动态;
- 无限时长、无限话题的“陪聊”模式;
- 根据不透明语音分数给用户贴发音好坏标签。
## 13. 个人使用检查
不需要留存、活跃用户或增长指标。每次对话后只检查它是否真正帮助你练习开口。
| 检查项 | 满足标准 |
|---|---|
| 能否开始 | 能在首页两次点击内进入一个场景 |
| 能否完成 | 能完成 3–5 轮对话,不会被识别或理解失败卡住 |
| 是否有收获 | 结束后能说清一个做得好的表达与一个待重说的句子 |
| 是否能巩固 | 第二天能以短对话重练上一轮的薄弱表达 |
## 14. 版本顺序
### V1:可用的个人对话练习
对应总产品 M1:语音/文字输入、TTS 回复、A0 种子情境及按能力生成的受控变式、四个求助按钮、任务证据判定、总结页、次日复习和基础进度。场景数量不限;A1 不在 M1。
### V1.1:改善日常使用
对应总产品 M2:扩展 A1 场景与自由主题对话;A1 场景来自已冻结的 A1 单元内容包(主题地图见《学习引擎规格》5.2),单元冻结前显示“待提供”。目标推荐、基础进度和同阶段变式已包含在 M1;更多发音能力必须另行验证,不预设可用。
### V2:扩展能力
增加 A2、B1 单元场景(来自单元内容包,开放任务按评分标准判定)和个性化对话计划。在你能稳定完成 V1 场景且想继续学习时再投入。
## 15. 数据与隐私
录音、转写文本和对话记录仅供你个人练习。优先保存在本机,并提供清空录音、对话记录和学习进度的入口。语音识别低置信度时,应用必须允许编辑,不能直接将其判为语言错误。