一、功能概述
通过 实验性接口事件回调 监听 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 | 已说完 |