配置更新与已发布应用隔离
厂商资源 → 应用配置 → 发布快照 → 会话初始化
模型发现只更新资源目录,不自动切换应用模型;应用重新发布后才使用新选择。拉取目录失败保留上一次成功结果,过期的异步响应不能覆盖并发修改后的账号配置。
连接 ASR、语言模型与语音合成
语音应用平台将项目、应用、厂商资源和发布版本分开管理。应用可以选择 ASR、LLM、TTS 与 MCP 工具;已有资源配置可以复用,但修改厂商资源不会直接改写已经发布的应用快照。
运行端既处理 ASR → LLM → TTS 级联,也处理阿里、豆包等厂商实时协议。工程重点是轮次、传输、模型配置和工具调用之间的状态一致性,尤其要区分服务端已生成回复、浏览器已收到音频和用户已播放完成。
管理应用、资源、会话、发布快照与权限,持久化轮次和处理阶段。
代理音频与事件,分别约束上行厂商连接和下行浏览器连接。
接收正式回复与音频,展示会话阶段和故障状态。
厂商资源 → 应用配置 → 发布快照 → 会话初始化
模型发现只更新资源目录,不自动切换应用模型;应用重新发布后才使用新选择。拉取目录失败保留上一次成功结果,过期的异步响应不能覆盖并发修改后的账号配置。
写入期限 → 首个故障原因 → 停止事件 → 持久化 failed / cancelled
上游和浏览器写入设置期限,失败后不再复用对应 sink。客户端正常关闭保留取消原因;故障后到达的完成、输入或输出事件不会把已失败轮次改成成功。初始化失败只向仍健康的浏览器通知。
级联 ASR / LLM / TTS 与厂商实时接口的帧格式、轮次结束和音频输出不同,简单转发无法形成可解释的应用状态。
将厂商协议封装为 Adapter,平台会话保存统一的轮次与处理阶段;正式回复、思考内容与音频结果分别处理。模型目录刷新有大小、超时和重定向限制,不将上游错误正文透传到界面。
应用配置面向能力和资源,实时运行仍保留厂商协议特征,避免通过隐藏差异制造错误兼容。
上游先失败、浏览器随后关闭时,收尾通知又可能失败。如果每次错误都覆盖原因,真实问题会被最后一个连接错误掩盖。
记录首个传输故障,同时独立标记浏览器是否可写。失败或已发送关闭帧后拒绝后续事件;数据库暂时失败时停止业务接收,并在关闭路径按原始原因重试保存。
正常取消、上游发送失败和浏览器发送失败有明确区别,迟到事件不能恢复终止轮次。
实时传输与轮次故障专项后的本地全量结果;另有两项浏览器测试单独执行。
使用 Chrome WebSocket、WebAudio 与本地厂商协议模拟,覆盖桌面和手机布局。
浏览器下行与厂商上行设置期限,失败后不继续复用连接写端。