火山引擎 AI 聊天机器人场景解决方案,通过机器人第三方消息回调将 AI 服务能力引入到 IM 应用中。 开发者基于火山引擎 IM 能力,可灵活选择业内领先的大模型能力,快速构造智能客服、效率助手、角色扮演、创意辅助等业务能力,打造更具互动性、创新性的用户体验。
场景类型 | 场景描述 |
---|---|
智能助手 | 用户与 AI 基于文本或语音进行即时交互。 用户提出任务需求,如日程安排、信息查询、文件处理等,智能助手迅速理解并给出准确回应。 |
社交陪伴 | 高度模拟真实社交互动,进行剧情体验、角色扮演。 AI 围绕兴趣爱好、日常琐事等话题与用户畅聊,感知用户情绪并给予共情回应,提供情感陪伴,构建温暖且个性的交流氛围。 |
智能客服 | 企业与客户之间的即时沟通桥梁。 客户咨询产品信息、服务流程或反馈问题,智能客服快速理解、依据知识库精准作答,高效解决常见问题,实现 7×24 小时不间断服务,提升客户服务效率与体验。 |
AI 教育 | 师生通过即时通讯开展教学互动。 学生随时提问,如学科知识疑惑、作业难题等,AI 依据教学大纲和海量知识精准解答,并针对学习情况提供个性化学习计划与辅导,助力学生提升学习效果。 |
整体接入流程如下:
使用 open api 添加机器人,参考注册用户接口,Users 类型中新增 IsRobot 字段,默认为 false,若指定为 true,则会将对应的用户注册为机器人。
POST https://rtc.volcengineapi.com?Action=RegisterUsers&Version=2020-12-01 { "AppId": 000000, "Users": [ { "UserId": 10004, "NickName": "Your_NickName", "Portrait": "http://xxxxx", "Tags": [ "标签值" ], "Ext": { "key":"value" }, "IsRobot": true } ] }
您可以在「火山引擎控制台 - 即时通讯IM - 运营配置 - 服务端回调配置」新增 AfterSendMessage 回调配置。
消息成功发送后触发该事件,可以使用该事件获取用户向 AI 机器人发送的消息,并与大模型交互。具体调用可参看 AfterSendMessage 回调。
如需清除上下文,可联系技术支持配置 AfterMarkNewChat 回调事件,在客户端清除上下文时触发该事件,可以使用该事件与大模型交互清除上下文。
您可以参考以下流程开发 App 后台服务:
BIMClient.getInstance().getService(BIMContactExpandService.class).getAllRobotFullInfo(true, new BIMResultCallback<List<BIMUserFullInfo>>() { @Override public void onSuccess(List<BIMUserFullInfo> profiles) { // 根据返回的机器人信息刷新 UI 列表 .... } @Override public void onFailed(BIMErrorCode code) { // 获取所有机器人失败 } });
String conversationId = ""; // 机器人会话ID BIMClient.getInstance().markNewChat(conversationId, true, new BIMSimpleCallback() { @Override public void onSuccess() { // 清空上下文成功 } @Override public void onFailed(BIMErrorCode code) { // 处理错误 } });
#import <imsdk-tob/BIMSDK.h> - (void)loadRobotListData { [[VEIMDemoUserManager sharedManager] getAllRobotFullInfoWithSyncServer:YES completion:^(NSArray<BIMUserFullInfo *> * _Nullable infos, BIMError * _Nullable bimError) { if (bimError) { NSError *error = [NSError errorWithDomain:kVEIMDemoErrorDomain code:bimError.code userInfo:@{NSLocalizedDescriptionKey : bimError.localizedDescription}]; [BIMToastView toast:[NSString stringWithFormat:@"获取所有机器人失败:%@", error.localizedDescription]]; return; } /// 根据返回的机器人信息刷新 UI 列表 .... }]; }
#import <imsdk-tob/BIMSDK.h> [[BIMClient sharedInstance] markNewChat:{机器人会话 ID} needNotice:YES completion:^(BIMError * _Nullable bimError) { NSError *error; if (bimError) { // 可以在这处理错误... } }];
import { BytedIM, BotPlugin } from '@volcengine/im-web-sdk'; // 创建实例,添加机器人插件 const bytedIMInstance = new BytedIM(imOption, [...otherPlugin, BotPlugin]);
// 获取机器人列表 bytedIMInstance.getBotListOnline();
// 创建单聊会话 const { payload: conversation } = bytedIMInstance.createConversation({ type: ConversationType.ONE_TO_ONE_CHAT, participants: uid, });
/* * 标记新会话,用于 ai bot 聊天场景清空上下文 * params.conversation 会话信息 * params.sendNotice 是否发送开场白 */ bytedIMInstance.markNewChat({ conversation, sendNotice });