对话界面功能
版本: 0.10
优先级: P0-T0
负责人: @Sphere @张伟
创建日期: 2026-01-07
1. 需求背景
对话界面(jot)是用户与AI进行访谈对话的核心页面,需要支持语音和文本两种输入方式,并提供流畅的对话体验。
2. 功能描述
2.1 对话页(jot)
2.1.1 欢迎语
- 用户进入对话页,会触发欢迎语
- 主入口和不同话题进入欢迎语不同,由 systemprompt 决定
2.1.2 输入方式
语音输入:
- 状态:待机、录音/识别、发送
- 操作方式:
- 点击长按即录音
- 录音小于 1s 不进入识别
- 滑动出录音区域停止录音
- 未识别到录音信息有 toast 提示
- 识别到录音会发送出消息
- 错误处理:
- 权限错误有对应提示
- 网络错误有对应提示
- 识别失败有对应提示
文本输入:
- 同时支持文本输入
- 文本输入与语音输入功能对等
2.1.3 流式输出
- 模型输出的内容支持流式输出
- 输出速度:约30-50字/秒(可调)
- 模型需要格式化输出,最好直接支持 md 格式
- 支持列表、要点、highlight、引用等格式能力
2.1.4 AI 状态提示
- 早期只有一个等待状态
- 后续可能有装载记忆、检索信息之类的模块
2.2 首页入口
2.2.1 Tab 切换
- 用户在首页可以切换 me 和 world
- 侧边栏/语音输入(立即开始)/个人主页入口 在最上层,不随 tab 切换
2.2.2 语音输入按钮
- 在首页点击(时长小于 1s)入口可以进入 jot
- 长按则直接开始录音,在发送时切换到 jot 进行发送
3. 用户场景
场景1:从首页进入对话
- 用户在首页点击语音输入按钮(短按)
- 进入对话页(jot)
- 看到欢迎语
- 开始语音或文本输入
场景2:从首页直接录音
- 用户在首页长按语音输入按钮
- 直接开始录音
- 录音完成后发送
- 自动切换到对话页
场景3:对话过程中
- 用户输入(语音或文本)
- 看到AI的流式输出
- 看到AI的状态提示(等待中/装载记忆/检索信息等)
- 继续对话
4. 验收标准
- 欢迎语能根据入口和话题正确显示
- 语音输入的所有状态能正确切换
- 录音小于1s不进入识别
- 滑动停止录音功能正常
- 各种错误情况有对应的提示
- 文本输入功能正常
- 流式输出速度可调,默认30-50字/秒
- 支持Markdown格式渲染(列表、要点、highlight、引用等)
- AI状态提示能正确显示
5. 设计图
6. 依赖项
- 语音识别服务(ASR)
- 对话模型服务
- System Prompt 生成系统
- 流式输出接口
7. 待定事项
- 流式输出速度的具体可调范围
- Markdown格式支持的具体范围
- AI状态提示的后续模块(装载记忆、检索信息等)的具体实现