TRTC AI 对话提供了丰富的状态回调功能。这些状态回调通过 TRTC 的自定义消息发送,使得在客户端上可以方便地实现丰富的状态切换,例如"聆听中"、"思考中"、“说话中”等状态。
功能特点
1. 实时性:状态变化可以实时传递给所有参与者。
2. 灵活性:使用自定义消息格式,便于集成和扩展。
3. 多状态支持:包括聆听、思考、说话和被打断等多种状态。
消息格式
状态回调消息使用 JSON 格式,具体字段如下:
字段 | 类型 | 描述 |
type | Number | 消息类型,10001 表示机器人状态 |
sender | String | 发送者的 userid,这里是机器人的 id |
receiver | Array | 接收者 userid 列表,该消息实际在房间内广播 |
payload | Object | 消息负载,包含状态详细信息 |
payload 对象包含以下字段:
字段 | 类型 | 描述 |
roundid | String | 唯一标识一轮对话的 ID |
timestamp | Number | 时间戳,表示状态变化的具体时间 |
state | Number | 机器人当前状态代码 |
状态代码说明:
状态代码 | 描述 |
1 | 聆听中 |
2 | 思考中 |
3 | 说话中 |
4 | 被打断 |
示例消息
{ "type": 10001, "sender": "ai_assistant_001", "receiver": [], "payload": { "roundid": "conversation_789012", "timestamp": 1629384755, "state": 2 } }
应用场景
1. UI 反馈:根据不同状态显示相应的界面元素,如"正在聆听"的动画。
2. 交互控制:在 AI 思考或说话时,可以禁用某些用户输入以避免中断。
3. 调试与分析:利用状态信息进行会话分析,优化用户体验。