You need to enable JavaScript to run this app.
导航
AI聊天机器人场景解决方案
最近更新时间:2025.04.27 19:48:20首次发布时间:2025.04.17 14:09:39
我的收藏
有用
有用
无用
无用

火山引擎 AI 聊天机器人场景解决方案,通过机器人第三方消息回调将 AI 服务能力引入到 IM 应用中。 开发者基于火山引擎 IM 能力,可灵活选择业内领先的大模型能力,快速构造智能客服、效率助手、角色扮演、创意辅助等业务能力,打造更具互动性、创新性的用户体验。

适用场景

场景类型场景描述
智能助手用户与 AI 基于文本或语音进行即时交互。
用户提出任务需求,如日程安排、信息查询、文件处理等,智能助手迅速理解并给出准确回应。
社交陪伴高度模拟真实社交互动,进行剧情体验、角色扮演。
AI 围绕兴趣爱好、日常琐事等话题与用户畅聊,感知用户情绪并给予共情回应,提供情感陪伴,构建温暖且个性的交流氛围。
智能客服企业与客户之间的即时沟通桥梁。
客户咨询产品信息、服务流程或反馈问题,智能客服快速理解、依据知识库精准作答,高效解决常见问题,实现 7×24 小时不间断服务,提升客户服务效率与体验。
AI 教育师生通过即时通讯开展教学互动。
学生随时提问,如学科知识疑惑、作业难题等,AI 依据教学大纲和海量知识精准解答,并针对学习情况提供个性化学习计划与辅导,助力学生提升学习效果。

体验 demo

接入流程

整体接入流程如下:
alt

开通服务

  1. 开通 IM 服务:请参看[开通服务](291042)开通 IM 服务。
  2. 开通 LLM 服务:注册并登录您计划使用的 AI 大模型服务账号,获取 API token。

注册 IM 机器人账号

使用 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 回调事件

您可以在「火山引擎控制台 - 即时通讯IM - 运营配置 - 服务端回调配置」新增 AfterSendMessage 回调配置。

消息成功发送后触发该事件,可以使用该事件获取用户向 AI 机器人发送的消息,并与大模型交互。具体调用可参看 AfterSendMessage 回调

alt
如需清除上下文,可联系技术支持配置 AfterMarkNewChat 回调事件,在客户端清除上下文时触发该事件,可以使用该事件与大模型交互清除上下文。

开发 App 后台服务

您可以参考以下流程开发 App 后台服务:
alt

  1. 用户发消息给机器人
  2. 火山 IM 服务器收到消息,通过第三方回调将事件通知到 APP Server
  3. APP server 调用大模型服务接口,大模型收到事件通知,将回复的消息内容发送给 APP server
  4. APP server 调用发送消息 openAPI 将回复内容发送给火山 IM
  5. 火山 IM 将回复内容发送给终端用户

客户端创建机器人会话

Android

  1. 初始化
  2. 拉取所有机器人列表
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) {
        // 获取所有机器人失败
    }
});
  1. 通过机器人 uid 可以创建机器人会话,和创建普通单聊一致
  2. 如有需要,可以主动清空会话上下文
String conversationId = ""; // 机器人会话ID
BIMClient.getInstance().markNewChat(conversationId, true, new BIMSimpleCallback() {
    @Override
    public void onSuccess() {
        // 清空上下文成功
    }

    @Override
    public void onFailed(BIMErrorCode code) {
        // 处理错误
    }
});

iOS

  1. 初始化
  2. 拉取所有机器人列表
#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 列表 ....
    }];
}
  1. 通过机器人 uid 可以创建机器人会话,和创建普通单聊一致
  2. 如有需要,可以主动清空会话上下文
#import <imsdk-tob/BIMSDK.h>

[[BIMClient sharedInstance] markNewChat:{机器人会话 ID} needNotice:YES completion:^(BIMError * _Nullable bimError) {
    NSError *error;
    if (bimError) {
        // 可以在这处理错误...
    }
}];

web

  1. 初始化
import { BytedIM, BotPlugin } from '@volcengine/im-web-sdk';
// 创建实例,添加机器人插件
const bytedIMInstance = new BytedIM(imOption, [...otherPlugin, BotPlugin]);
  1. 拉取所有机器人列表
// 获取机器人列表
bytedIMInstance.getBotListOnline();
  1. 通过机器人 uid 可以创建机器人会话,和创建普通单聊一致
// 创建单聊会话
const { payload: conversation } = bytedIMInstance.createConversation({
    type: ConversationType.ONE_TO_ONE_CHAT,
    participants: uid,
});
  1. 如有需要,可以主动清空会话上下文
/*
* 标记新会话,用于 ai bot 聊天场景清空上下文
* params.conversation 会话信息
* params.sendNotice 是否发送开场白
*/
bytedIMInstance.markNewChat({ conversation, sendNotice });