介绍Web端如何接入Al实时对话智能体。
简介
DingRTC提供了Al实时对话智能体服务,可以通过服务端API启动智能体,并加入到指定的 RTC 频道,频道中其他人看待智能体跟其他的用户基本一样。Web SDK 提供接口用于监听加入RTC 频道的智能体的一些消息和状态,以及发送消息或者通知给智能体。
相关概念
智能体ID:智能体的用户ID。
转录消息:与智能体对话的转录信息。
自然对话/对讲机模式:通过OpenAPI创建的智能体的对话模式。
集成方法
参考快速入门完成RTC Web SDK的集成和基本功能实现。
构造 AiAgentClient 的实例,并注册到rtcClient对象:
import DingRTC from 'dingrtc'; import AiAgentClient from 'dingrtc-aiagent'; const rtcClient = DingRTC.createClient(); // 替换为实际的 agent user id const aiAgentClient = new AiAgentClient('xxx'); rtcClient.register(aiAgentClient);
rtcClient 加入 Channel:
await rtcClient.join({ appId: '', userName: '', channel: '', uid: '', token: '', });
AiAgentClient 实例监听相关消息:
// 监听智能体下发的转录消息 aiAgentClient.on('message', (message: AIAgentMessage) => { console.log("收到消息:", message); /** * 消息结构示例: * - message: 文本内容 * - uid: 发送者ID * - reasoning: 是否为思考过程 * - userType: 'user' 或 'agent' * - extra: 插播消息自定义内容,暂时未使用 * - end: 是否结束标记 */ }); // 监听智能体状态变更 aiAgentClient.on('agent-status', (newStatus: AgentStatus) => { console.log("Agent 状态变更:", newStatus); // 状态可能是: 'listening' | 'processing' | 'responding' });
通过你的业务 AppServer 调用智能体服务的 StartAgent - 启动智能体
如果在启动智能体时,设置自然对话模式,那么就可以正常与智能体对话。
如果在启动智能体时,设置对讲机模式,需要配合下面相关接口才能与智能体对话:
// 通知 agent 本端开始“按下说话”(push-to-talk) aiAgentClient.startPushToTalk(); // 通知 agent 本端结束“按下说话”(push-to-talk) aiAgentClient.stopPushToTalk(); // 通知 agent 本端取消“按下说话”(push-to-talk) aiAgentClient.cancelPushToTalk();
无论何种模式,都可以使用 AiAgentClient 的 下列API 对智能体进行打断 :
// 打断 agent aiAgentClient.interrupt(): void;
注意事项
智能体创建及加入由服务端OpenAPI StartAgent - 启动智能体接口决定。
推荐在入会前给AIAgentClient实例设置消息监听器,避免丢失回调消息。
该文章对您有帮助吗?