Skip to content

智能体对话页 SDK 事件说明

智能体 Web SDK 采用事件机制向嵌入方提供信息,可按照以下方式监听事件:

js
// 监听某个事件多次触发
robot.on("eventName", (data) => {
  // do something
});

// 监听某个事件一次触发
robot.once("eventName", (data) => {
  // do something
});

// 移除某个事件的某个监听回调
robot.off("eventName", (data) => {
  // do something
});

// 移除某个事件的所有监听
robot.off("eventName");

progress

智能体初始化进度变化时触发

示例代码

js
robot.on("progress", (precent) => {
  console.log("progress", `${precent}%`);
});

initSuccess

智能体初始化成功时触发

示例代码

js
robot.on("initSuccess", () => {
  console.log("initSuccess");
});

wsConnected

智能体与服务端建立 WebSocket 连接成功时触发

示例代码

js
robot.on("wsConnected", () => {
  console.log("wsConnected");
});

wsDisconnected

智能体与服务端断开 WebSocket 连接时触发

示例代码

js
robot.on("wsDisconnected", (data) => {
  console.log("wsDisconnected", data);
});

数据格式

json
{
  "reason": string, // 断开原因
  "code": number, // 断开代码
  "wasClean": number // 是否正常断开
}

message

智能体收到消息时触发,用于接收服务端发送的聊天消息

注意

出于数据安全考虑,message 事件需要配置域名白名单。请在监听该事件前确保已向智能体开发团队提交您的调用域名。

内置调试域名:localhost

示例代码

js
robot.on("message", (data) => {
  console.log("message", data);
});

speechLinkRefresh

远程语音输入连接地址有效期为 30 秒,在有效期内未进行连接则会重新生成连接地址,可用该事件进行接收。

示例代码

js
robot.on("speechLinkRefresh", (link) => {
  console.log("speechLinkRefresh", link);
});

speechStatusChange

远程语音输入连接状态变化时触发

示例代码

js
robot.on("speechStatusChange", (status) => {
  console.log("speechStatusChange", status);
});

状态说明

connected 连接成功

losted 连接断开

fail 连接失败

speechText

远程语音输入文本识别成功时触发, 返回识别结果

示例代码

js
robot.on("speechText", (text) => {
  console.log("speechText", text);
});

speechDuration

语音输入剩余可用时长变化时触发, 单位为秒

注意

  1. 仅在 speech(options) 的参数中 options.remoteInputfalse 时生效

  2. 语音输入过程中静默时长达到 10秒 时会自动结束语音输入

示例代码

js
robot.on("speechDuration", (duration: number) => {
  console.log("speechDuration", duration);
});

destroy

智能体销毁时触发

示例代码

js
robot.on("destroy", () => {
  console.log("destroy");
});