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 }
- 发送前请确保 AI 数字人已被添加。详情请参考 开通和添加 AI 数字人。
- 本接口为异步接口。
参数说明
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 数字人相关错误码。
此文档是否对你有帮助?