智能体在讲话时,您可以通过智能打断或者手动打断两种方式打断智能体说话。通过阅读本文,您可以了解如何实现智能体讲话打断功能。
介绍
目前有两种方式打断智能体讲话,智能打断和手动打断:
智能打断是通过语音打断智能体讲话,例如智能体在回答问题A,终端用户再次询问问题B时,智能体会中断问题A的回答,开始问题B的回答。
手动打断是向正在说话的智能体发送一个打断指令,智能体收到指令后,停止当前问题的回答。
说明
智能打断是通过语音驱动,手动打断需要发送打断消息。智能打断默认开启,可以调用更新RTC互动AI智能体实例接口进行开启或关闭。
发送打断信息
打断信息通过RTC自定义消息通道进行发送,您需要先开通实时音视频应用,以及打开RTC自定义消息通道设置。更多信息,请参见快速开始实时音视频、自定义消息发送和接收。
打断消息中需要含有以下字段:
字段名称 | 描述 |
type | 消息类型 |
senderId | 发送消息的UserId |
receiverId | 接收的智能体Id |
打断信息如下:
{
"type": 1101,
"senderId": "user_1", // 发送人id
"receiverId": "robot_1" // 智能体Id
}
IOS
终端RTC SDK通过自定义消息通道发送打断智能体讲话指令的示例代码如下:
var sendDict: [String: Any] = [
"type": 1101,
]
sendDict.updateValue(myUid, forKey: "senderId")
sendDict.updateValue(robotUid, forKey: "receiverId")
if let sendData = sendDict.aicall_jsonString.data(using: .utf8) {
let rtcMsg = AliRtcDataChannelMsg()
rtcMsg.type = .custom
rtcMsg.data = sendData
self.rtcEngine.sendDataChannelMessage(rtcMsg)
}
Android
终端RTC SDK通过自定义消息通道发送打断智能体讲话指令的示例代码如下:
int msgType = 1101;
// 用户入会之后的userId
String senderId = "myRtcUserId";
// 机器人入会之后的userId
String receiverId = "robotRtcUserId";
if (null != mAliRtcEngine) {
try {
JSONObject jsonObject = new JSONObject();
jsonObject.put("type", msgType);
jsonObject.put("senderId", senderId);
jsonObject.put("receiverId", receiverId);
AliRtcEngine.AliRtcDataChannelMsg rtcDataChannelMsg = new AliRtcEngine.AliRtcDataChannelMsg();
rtcDataChannelMsg.type = AliEngineDataMsgCustom;
rtcDataChannelMsg.data = jsonObject.toString().getBytes(StandardCharsets.UTF_8);
mAliRtcEngine.sendDataChannelMsg(rtcDataChannelMsg);
} catch (JSONException ex) {
ex.printStackTrace();
}
}
文档内容是否对您有帮助?