AI 数字人

更新时间: 2024/09/14 17:49:33

网易云信即时通讯 SDK(NetEase IM SDK,以下简称 NIM SDK)提供 AI 数字人。数字人既可以是虚拟的 AI 对话伙伴、高效的协同工作助手、也可定制贴合业务所需更高安全性的本地大模型。

本文介绍 AI 数字人相关的 API。更多详情,请参考《集成开发》 AI 数字人

支持平台

Android iOS macOS/Windows Web
✔️ ✔️ ✔️ ✔️

API 概览

AI 数字人监听

API 说明 起始版本
addAIListener 注册 AI 数字人相关监听器。 v10.3.0
removeAIListener 移除 AI 数字人相关监听器。 v10.3.0

AI 数字人操作

API 说明 起始版本
getAIUserList 根据用户账号 ID 列表获取 AI 数字人。 v10.3.0
proxyAIModelCall AI 数字人向 LLM 发起查询请求。 v10.3.0
sendMessage AI 数字人发送消息。 v10.2.0

接口类

V2NIMAIService 类提供 AI 数字人相关接口,包括查询数字人、LLM 模型请求、添加 AI 数字人监听、移除 AI 数字人监听。

addAIListener

接口描述

注册添加 AI 数字人的监听器。注册成功后,当聊天会话中添加了 AI 数字人后,SDK 会返回对应的回调。

  • 建议在初始化后调用该接口。

  • 全局只需注册一次。

参数说明

Android
Java/**
 * 添加 AI 监听
 * @param listener
 */
void addAIListener(V2NIMAIListener listener);
iOS
Objective-C/**
* 添加数字人监听器
*
* @param listener 消息监听回调
*/
- (void)addAIListener:(id<V2NIMAIListener>)listener;
macOS/Windows
C++/// @brief 添加 AI 模块的监听器
/// @param listener 监听器
/// @return void
/// @par 示例代码
/// @code
/// V2NIMAIListener listener;
/// aiService.addAIListener(listener);
/// @endcode
virtual void addAIListener(V2NIMAIListener listener) = 0;
Web
TypeScript/**
 * 继承自 eventEmitter3 的监听事件方法
 */
interface V2NIMAIService extends EventEmitter3<V2NIMAIListener>
参数名称 类型 是否必填 默认值 说明
listener V2NIMAIListener - AI 数字人相关监听器。

示例代码

Android
JavaV2NIMAIListener listener = new V2NIMAIListener() {
    /**
     * AI 消息的响应的回调
     *
     * @param result 本次响应的结构体
     */
    @Override
    public void onProxyAIModelCall(V2NIMAIModelCallResult result) {
        // do something
    }
};

NIMClient.getService(V2NIMAIService.class).addAIListener(listener);
iOS
Objective-C[NIMSDK.sharedSDK.v2AIService addAIListener:self];
macOS/Windows
C++auto& aiService = v2::V2NIMClient::get().getAIService();
aiService.addAIListener(aiListener);
Web
C++nim.V2NIMAIService.on('onProxyAIModelCall', function() {
    // ... do something
})

返回值

无。

removeAIListener

接口描述

移除 AI 数字人监听器。

参数说明

Android
Java/**
 * 移除 AI 监听
 * @param listener
 */
void removeAIListener(V2NIMAIListener listener);
iOS
Objective-C/**
* 删除数字人监听器
*
* @param listener 消息监听回调
*/
- (void)removeAIListener:(id<V2NIMAIListener>)listener;
macOS/Windows
C++/// @brief 移除 AI 模块的状态监听器
/// @param listener 监听器
/// @return void
/// @par 示例代码
/// @code
/// V2NIMAIListener listener;
/// aiService.removeAIListener(listener);
/// @endcode
virtual void removeAIListener(V2NIMAIListener listener) = 0;
Web
C++/**
 * 继承自 eventEmitter3 的监听事件方法
 */
interface V2NIMAIService extends EventEmitter3<V2NIMAIListener>
参数名称 类型 是否必填 默认值 说明
listener V2NIMAIListener - AI 数字人相关监听器。

示例代码

Android
JavaNIMClient.getService(V2NIMAIService.class).removeAIListener(listener);
iOS
Objective-C[NIMSDK.sharedSDK.v2AIService removeAIListener:self];
macOS/Windows
C++auto& aiService = v2::V2NIMClient::get().getAIService();
aiService.removeAIListener(aiListener);
Web
C++nim.V2NIMAIService.off('onProxyAIModelCall')

返回值

无。

getAIUserList

接口描述

批量查询 AI 数字人列表。返回全量的开发者账号下的相关的数字人用户。

参数说明

Android
Java/**
 * 数字人拉取接口
 * @param success 成功回调
 * @param failure 失败回调
 */
void getAIUserList(V2NIMSuccessCallback<List<V2NIMAIUser>> success, V2NIMFailureCallback failure);
iOS
Objective-C/**
 *  数字人拉取接口
 *  返回全量的本Appkey相关的数字人用户
 *
 *  @param success  请求成功回调
 *  @param failure  请求失败回调
 */
- (void)getAIUserList:(nullable V2NIMGetAlUserListSuccess)success
              failure:(nullable V2NIMFailureCallback)failure;
macOS/Windows
C++    /// @brief 获取 AI 数字人列表
    /// @param success 成功回调
    /// @param failure 失败回调
    /// @return void
    /// @par 示例代码
    /// @code
    /// aiService.getAIUserList(
    ///     [](nstd::vector<nstd::shared_ptr<V2NIMAIUser>> result) {
    ///         // get AI users success
    ///     },
    ///     [](V2NIMError error) {
    ///         // get AI users failed, handle error
    ///     });
    /// @endcode
    virtual void getAIUserList(V2NIMSuccessCallback<nstd::vector<nstd::shared_ptr<V2NIMAIUser>>> success, V2NIMFailureCallback failure) = 0;
Web
TypeScript/**
 * ESM 模式时,需要动态引入 V2NIMAIService 后使用:
 * NIM.registerService(V2NIMAIService, 'V2NIMAIService')
 *
 * 数字人拉取接口
 *
 * 注: 返回全量的本 Appkey 相关的数字人用户
 *
 * @returns 数字人用户列表
 */
getAIUserList(): Promise<V2NIMAIUser[]>
|

::: -->

参数名称 类型 是否必填 默认值 说明
success V2NIMSuccessCallback - 获取 AI 数字人成功回调,返回 V2NIMAIUser AI 数字人列表。
failure V2NIMFailureCallback - 获取 AI 数字人失败回调,返回 错误码

示例代码

Android
JavaNIMClient.getService(V2NIMAIService.class).getAIUserList(new V2NIMSuccessCallback<List<V2NIMAIUser>>() {
    @Override
    public void onSuccess(List<V2NIMAIUser> users) {
        // success
    }
}, new V2NIMFailureCallback() {
    @Override
    public void onFailure(V2NIMError error) {
        // failure
    }
});
iOS
Objective-C[NIMSDK.sharedSDK.v2AIService getAIUserList:^(NSArray<V2NIMAIUser *> * _Nullable result) {
           // 成功回调
        } failure:^(V2NIMError * _Nonnull error) {
            // 失败回调
        }];
macOS/Windows
C++auto& AIService = v2::V2NIMClient::get().getAIService();
AIService.getAIUserList(
    [=](nstd::vector<nstd::shared_ptr<V2NIMAIUser>> result) {
        // 成功回调                                      auto detailString = xpack::json::encode(result);
    },
    [=](v2::V2NIMError error) {
        // 失败回调
    });
Web
TypeScriptconst aiUsers = await nim.V2NIMAIService.getAIUserList()

返回值

成功返回
JavaList<V2NIMAIUser> userList
失败返回
JavaV2NIMError error

相关回调

  • 请求成功,返回 V2NIMSuccessCallback 回调,包含 V2NIMAIUser AI 数字人列表。
  • 请求失败,返回 V2NIMFailureCallback 回调,包含 AI 数字人相关错误码。

proxyAIModelCall

接口描述

向 LLM(Large Language Models)发起模型调用请求。数字人发送消息调用 sendMessage

JSON{ "msg": "xxxx", "type": 0 }

参数说明

Android
Java/**
 * AI 数字人请求代理接口
 * @param params 请求参数
 * @param success 成功回调
 * @param failure 失败回调
 */
void proxyAIModelCall(V2NIMProxyAIModelCallParams params, V2NIMSuccessCallback<Void> success, V2NIMFailureCallback failure);
iOS
Objective-C/**
 *  Al数字人请求代理接口
 *
 *  @param params   接口入参
 *  @param success  请求成功回调
 *  @param failure  请求失败回调
 */

- (void)proxyAIModelCall:(V2NIMProxyAIModelCallParams *)params
                 success:(nullable V2NIMSuccessCallback)success
                 failure:(nullable V2NIMFailureCallback)failure;
macOS/Windows
C++    /// @brief AI 数字人请求代理接口
    /// @param params 接口入参
    /// @param success 成功回调
    /// @param failure 失败回调
    /// @return void
    /// @par 示例代码
    /// @code
    /// V2NIMProxyAIModelCallParams params;
    /// aiService.proxyAIModelCall(
    ///     params,
    ///     []() {
    ///         // update success
    ///     },
    ///     [](V2NIMError error) {
    ///         // update failed, handle error
    ///     });
    /// @endcode
    virtual void proxyAIModelCall(V2NIMProxyAIModelCallParams params, V2NIMSuccessCallback<void> success, V2NIMFailureCallback failure) = 0;
Web
TypeScript/**
 * ESM 模式时,需要动态引入 V2NIMAIService 后使用:
 * NIM.registerService(V2NIMAIService, 'V2NIMAIService')
 *
 * AI 数字人请求代理接口
 *
 * @param params 接口入参
 */
proxyAIModelCall(params: V2NIMProxyAIModelCallParams): Promise<void>
参数名称 类型 是否必填 默认值 说明
params V2NIMProxyAIModelCallParams - AI 数字人更新参数,包括用户昵称、头像、签名、邮箱、性别、生日、手机号以及扩展信息。
success V2NIMSuccessCallback - 更新 AI 数字人成功回调。
failure V2NIMFailureCallback - 更新 AI 数字人失败回调,返回 错误码

示例代码

Android
JavaV2NIMProxyAIModelCallParams params = new V2NIMProxyAIModelCallParams.Builder()
    .accountId("accountId") 
    .requestId("requestId")
    .content(new V2NIMAIModelCallContent("msg",0))
    .build();
NIMClient.getService(V2NIMAIService.class).proxyAIModelCall(params, new V2NIMSuccessCallback<Void>() {
    @Override
    public void onSuccess(Void unused) {
        // success
    }
}, new V2NIMFailureCallback() {
    @Override
    public void onFailure(V2NIMError error) {
        // failure
    }
});
iOS
Objective-CV2NIMProxyAIModelCallParams *params = [[V2NIMProxyAIModelCallParams alloc] init];
    params.accountId = @"accid";
    params.requestId = @"requestId"
    //...
    [NIMSDK.sharedSDK.v2AIService proxyAIModelCall:params success:^{
        // 成功回调
    } failure:^(V2NIMError * _Nonnull error) {
        // 失败回调
    }];
macOS/Windows
C++auto& aiService = v2::V2NIMClient::get().getAIService();
V2NIMProxyAIModelCallParams proxyAIModelCallParams;
aiService.proxyAIModelCall(
    proxyAIModelCallParams,
    [=]() {
        // 成功回调
    },
    [=](v2::V2NIMError error) {
        // 失败回调
    });
Web
TypeScriptawait nim.V2NIMAIService.proxyAIModelCall({
  "accountId": "YOUR_AI_ACCOUNT_ID",
  "requestId": "YOUR_REQUEST_ID",
  "content": {
    "msg": "YOUR_CONTENT_MSG",
    "type": 0
  }
})

返回值

成功返回

无。

失败返回
JavaV2NIMError error

相关回调

  • 请求成功,返回 V2NIMSuccessCallback 回调。
  • 请求失败,返回 V2NIMFailureCallback 回调,包含 AI 数字人相关错误码。
此文档是否对你有帮助?
有帮助
去反馈
  • 支持平台
  • API 概览
  • AI 数字人监听
  • AI 数字人操作
  • 接口类
  • addAIListener
  • 接口描述
  • 参数说明
  • 示例代码
  • 返回值
  • removeAIListener
  • 接口描述
  • 参数说明
  • 示例代码
  • 返回值
  • getAIUserList
  • 接口描述
  • 参数说明
  • 示例代码
  • 返回值
  • 相关回调
  • proxyAIModelCall
  • 接口描述
  • 参数说明
  • 示例代码
  • 返回值
  • 相关回调