本文介绍Qwen-Omni-Turbo-Realtime API的客户端事件。
相关文档:实时多模态。
客户端事件
session.update
通常来说,客户端在新建立的 websocket链接上发送的第一个事件是 session.update,用以更新本次会话交互的默认配置。
在您建立链接,服务端会及时返回用于此会话的默认输出输入配置。如果您需要更新默认会话配置,我们也推荐您总是在建立链接后即刻发送此事件,
服务端在收到session.update事件后,会进行参数校验,如果参数不合法则返回错误,否则更新服务端侧的会话配置,并返回完整的所有会话配置。
|
|
response.create
response.create
事件用于指示服务器创建模型响应。在"server_vad"模式下配置会话时,服务器会自动创建模型响应。
服务器使用 response.created
事件、一个或多个项和内容事件(如 conversation.item.created
和 response.content_part.added
)进行响应,最后用一个 response.done
事件表示响应已完成。
|
|
response.cancel
客户端发送此事件用以取消正在进行的响应。如果没有任何响应可供取消,服务器将以一个错误进行响应。
|
|
input_audio_buffer.append
用于将音频字节追加到输入音频缓冲区。 音频缓冲区是你可以写入并稍后提交的临时存储。
在"server_vad"模式下,音频缓冲区用于检测语音,服务器决定何时提交。 禁用"server_vad"模式后,客户端可以选择每个事件中放置多少音频量,最多放置 15 MiB。 例如,从客户端流式处理较小的数据块可以让 VAD 响应更迅速。
与进行其他客户端事件不同,服务器不会向客户端 input_audio_buffer.append
事件发送确认响应。
|
|
input_audio_buffer.commit
用于提交用户输入音频缓冲区,从而在对话中创建新的用户消息项。 如果输入的音频缓冲区为空,此事件将产生错误。处于"server_vad"模式时,客户端不需要发送此事件,服务器会自动提交音频缓冲区。如果没有处于"server_vad"模式,客户端必须提交音频缓冲区才能创建用户消息项。
如果 input_audio_transcription
为会话配置了音频转录,系统会转录音频。
提交输入音频缓冲区不会从模型创建响应,服务器将使用 input_audio_buffer.committed
事件进行响应。
如果客户端发送过input_image_buffer.append事件,input_audio_buffer.commit 事件会将视频缓存区一起提交。
|
|
input_audio_buffer.clear
用于清除缓冲区中的音频字节。服务器使用 input_audio_buffer.cleared
事件进行响应。
|
|
input_image_buffer.append
用于将图片数据添加到视频缓冲区。图片数据可以是本地的图片,或从视频流实时采集的图片数据。
目前对图片输入有以下限制:
图片格式需要为JPG或JPEG,建议传入的图片分辨率为480P或720P, 最大1080P;
单张图片大小不大于500KB;
图片数据需要经过Base64编码;
建议您以 2张/秒 的频率向服务端发送图片;
您需要先发送音频数据,再发送图片数据;
视频缓存区通过 input_audio_buffer.commit提交。
|
|