session.update 事件的 session.mode 参数切换:
session.update 事件的 session.mode 属性设置为 "server_commit" 以启用此模式。服务端会智能处理文本分割和合成时机。流程:session.update 事件。服务端返回 session.created 和 session.updated 事件。input_text_buffer.append 事件,将文本追加到服务端缓冲区。response.created、response.output_item.added、response.content_part.added 和 response.audio.delta 事件。response.audio.done、response.content_part.done、response.output_item.done 和 response.done。session.finish,服务端返回 session.finished 结束会话。| 生命周期 | 客户端事件 | 服务端事件 |
|---|---|---|
| 会话初始化 | session.update 会话配置 | session.created 会话已创建 |
session.updated 会话配置已更新 | ||
| 用户文本输入 | input_text_buffer.append 向服务端追加文本 | |
input_text_buffer.commit 立即合成服务端缓存的文本 | ||
session.finish 通知服务端不再有文本输入 | input_text_buffer.committed 服务端已接收提交的文本 | |
| 服务端音频输出 | 无 | response.created 服务端开始生成响应 |
response.output_item.added 响应中有新的输出内容 | ||
response.content_part.added 助手消息中添加了新的输出内容 | ||
response.audio.delta 模型生成的增量音频 | ||
response.content_part.done 内容流已完成 | ||
response.output_item.done 输出项流已完成 | ||
response.audio.done 音频生成完成 | ||
response.done 响应完成 |
session.update 事件的 session.mode 属性设置为 "commit" 以启用此模式。客户端需要主动将文本缓冲区提交给服务端以触发合成。流程:session.update 事件。服务端返回 session.created 和 session.updated 事件。input_text_buffer.append 事件,将文本追加到缓冲区。input_text_buffer.commit 事件将缓冲区提交给服务端。response.created,开始生成响应。response.audio.delta 等事件。session.finish,服务端返回 session.finished 结束会话。| 生命周期 | 客户端事件 | 服务端事件 |
|---|---|---|
| 会话初始化 | session.update 会话配置 | session.created 会话已创建 |
session.updated 会话配置已更新 | ||
| 用户文本输入 | input_text_buffer.append 向缓冲区追加文本 | |
input_text_buffer.commit 将缓冲区提交给服务端 | ||
input_text_buffer.clear 清空缓冲区 | input_text_buffer.committed 服务端已接收提交的文本 | |
input_text_buffer.cleared 缓冲区已清空 | ||
| 服务端音频输出 | 无 | response.created 服务端开始生成响应 |
response.output_item.added 响应中有新的输出内容 | ||
response.content_part.added 助手消息中添加了新的输出内容 | ||
response.audio.delta 模型生成的增量音频 | ||
response.content_part.done 内容流已完成 | ||
response.output_item.done 输出项流已完成 | ||
response.audio.done 音频生成完成 | ||
response.done 响应完成 |
session.created,客户端可发送 session.update 配置参数。session.finish,服务端刷新剩余音频并返回 session.finished。session.finished 后主动关闭 WebSocket。| 错误 | 原因 | 解决方法 |
|---|---|---|
| HTTP 401/403 握手失败 | API Key 无效或缺失 | 确认 Authorization 头格式为 Bearer $DASHSCOPE_API_KEY |
| 连接立即断开 | URL 缺少 model 参数 | 确认 URL 包含 ?model=<model_id> |
error 事件 | 参数错误或模型不支持 | 检查 session.update 中的参数是否与所选模型兼容 |
only client commit mode supports clear operation | 在 server_commit 模式下发送了 input_text_buffer.clear | 仅在 commit 模式下使用 clear 操作 |