实时音视频 接收 AI 机器人状态(客户端)

TRTC AI 实时对话 2.0 提供了丰富的状态回调功能。这些状态回调通过 TRTC 的自定义消息发送,使得在客户端上可以方便地实现丰富的状态切换,例如”聆听中”、”思考中”、“说话中”等状态。

相关产品
实时音视频 产品页,含版本规格、价格与购买入口。

一、功能概述

通过 实验性接口事件回调 监听 onAIConversationEvent 回调,在客户端上监听回调来接收实时 AI 状态的数据。

二、连接机器人

如果需要接收字幕信息,需要先通过 实验性接口(callExperimentalAPI) 调用 connect 连接对应的 AI 机器人。

TRTCCloud.callExperimentalAPI:

{ "api": "aiConversation", "params": { "command": "connect", "robotid": "ai_bot_001" }}

robotid 是通过 REST API CreateVoiceConversation 创建任务时填入的 AgentConfig.UserId。

连接结果通过 TRTCCloudListener.onExperimentalEvent 回调,eventName 为 onAIConversationEvent,params 为:

{ "event": "onCommand", "robotid": "ai_bot_001", "command": "connect", "errCode": 0, "errMsg": "ok"}

errCode 含义
0 连接成功。
-2 参数错误,缺少 robotid。
2001 任务不存在或已结束。
2002 SDK 版本过低。

三、监听状态

完成连接之后,机器人状态会通过 onExperimentalEvent 实时回调,eventName 为 onAIConversationEvent。params.event 为 agentState。

四、消息格式

{ "event": "agentState", "robotid": "ai_bot_001", "data": { "type": 10102, "robotid": "ai_bot_001", "sender": "tts_bot_001", "payload": { "taskid": "task-id", "state": { "code": 2, "desc": "thinking" }, "timestamp": 1751196060800 } }}

字段 类型 说明
event String 固定为 agentState。
robotid String 当前连接的 AI 机器人 UserId。
data.type Number 消息类型,机器人状态为 10102。
data.robotid String AI 对话机器人 UserId(AgentConfig.UserId)。
data.sender String 实际发送方 UserId,状态消息为对应的 TTS 机器人。
data.payload.taskid String AI 对话任务 ID。
data.payload.state.code Number 当前状态码,见下表。
data.payload.state.desc String 状态描述。
data.payload.timestamp Number 状态切换的 UTC 时间戳,单位毫秒。

注意:说明:

注意:data.payload(类型:Object,说明:状态负载)与 data.payload.state(类型:Object,说明:状态对象)为嵌套对象。

state.code 含义
0 空闲
1 聆听中
2 思考中
3 说话中
4 被打断
5 已说完
赞 (0)
上一篇 4天前
下一篇 4天前