AI 数字人概述
更新时间: 2024/07/26 13:39:23
网易云信即时通讯(NIM)提供的 UI 组件(UI Kit)从 10.3.0 版本起支持 AI 数字人功能,支持您在即时通讯场景中组件化调用 AI 数字人的能力,并通过功能开关在应用层面实现全局一键关闭或启用 AI 数字人能力。
AI 数字人目前从实现层面而言,常见的类型有 AI 聊数字人、AI 翻译数字人、以及 AI 划词搜索数字人。
AI 聊 是网易云信即时通讯 IM 的创新功能,终端用户可以在 IM 单聊场景里,直接艾特(@)AI 数字人,快速参与到好友互动中,无需拉群或加好友,以第三人称提供 AI 辅助和聊天互动。
功能概览
-
在会话列表中,新增置顶 AI 数字人会话。
-
在通讯录页面,新增我的 AI 数字人。
-
在会话聊天中,支持 AI 数字人聊天功能。详情请参考 实现与 AI 数字人聊天。包括:
- 在会话中,支持 AI 数字人聊天功能。
- 在群聊中,支持添加 AI 数字人,并 @ AI 数字人,AI 数字人会对您的消息进行回复。
-
在会话聊天中,支持 AI 划词搜索功能。详情请参考 实现划词搜索。
-
在会话聊天中,支持 AI 翻译功能。详情请参考 实现多国语言翻译。
大概功能实现效果如下图所示:
AI 数字人配置
添加 AI 数字人
AI 数字人配置的第一步是在网易云信控制台上添加并配置一个 AI 数字人,步骤如下,如果您已经完成了部分步骤,则可相应跳过:
- 在 网易云信控制台 上创建了至少一个应用。详细步骤请参考 创建应用并获取 AppKey。
- 为应用开通了 IM 产品。详细步骤请参考 开通或试用服务。
- 添加了至少一个 AI 数字人,包括 AI 聊天数字人、AI 搜索数字人、AI 翻译数字人。详细步骤请参考 开通和添加 AI 数字人。
配置 AI 聊数字人
在实现层面,数字人被视为一种特殊的用户,添加了数字人 后,您需要调用服务端 /im/v2/users/:{account_id}
接口,将数字人的账号 ID(account_id
)传入,并在 extension
字段中加入 AI 聊数字人的信息扩展,如下所示,即可被 IM UIKit 识别为 AI 聊数字人。
-
aichat
:1 表示该数字人功能定位为 AI 聊数字人,可以进行聊天或者置顶到会话列表。 -
welcomeText
:用户首次进入 AI 数字人聊天页面,AI 数字人发送的欢迎消息。 -
pinDefault
:表示该 AI 数字人是否置顶到会话列表中。1 表示置顶,0 表示不置顶。默认为不置顶。JSON
{ "aiChat": 1, "welcomeText": "欢迎使用 AI 聊数字人", "pinDefault": 1 }
配置其他 AI 数字人
当您在网易云信控制台上配置 AI 数字人时,只能配置 AI 聊数字人功能相关配置。如果是其他功能类型 AI 数字人,例如 AI 多国语言翻译、AI 划词搜索,则需要在应用中接入 IM UIKit 进行配置。
在登录成功之后,您需要根据网易云信控制台配置的 AI 数字人进行筛选,并确定负责 AI 翻译或者 AI 划词的数字人。然后在接口方法中,将网易云信控制台上配置的 AI 数字人作为入参,如下所示。更多详情,请参考 IM UIKit Demo 中 MainActivity
中的代码。
Java//设置功能 AI 数字人信息 AIUserManager.setProvider(
new AIUserAgentProvider() {
// AI 翻译功能支持的翻译语言,如果返回为空,则采用 IM UIKit 中默认支持的语言
@Override
public List<String> getAiTranslateLanguages(@NonNull List<? extends V2NIMAIUser> users) {
List<String> languageList = new ArrayList<>();
languageList.add("英语");
languageList.add("日语");
languageList.add("韩语");
languageList.add("俄语");
return languageList;
}
// 置顶 AI 翻译数字人,入参 List<? extends V2NIMAIUser> users 是您在网易云信控制台 https://app.yunxin.163.com/global/home 配置的所有 AI 数字人都会在该列表中
// 您可以通过 V2NIMAIUser 的扩展参数,或者 accountId 确定
@Override
public V2NIMAIUser getAiTranslateUser(@NonNull List<? extends V2NIMAIUser> users) {
for (V2NIMAIUser user : users) {
if (AI_TRANSLATION_USER_ACCOUNT.equals(user.getAccountId())) {
return user;
}
}
return null;
}
// 指定 AI 划词搜索数字人,入参 List<? extends V2NIMAIUser> users 是您在网易云信控制台配置的所有 AI 数字人都会在该列表中
// 您可以通过 V2NIMAIUser 的扩展参数,或者 accountId 确定
@Override
public V2NIMAIUser getAiSearchUser(@NonNull List<? extends V2NIMAIUser> users) {
for (V2NIMAIUser user : users) {
if (AI_SEARCH_USER_ACCOUNT.equals(user.getAccountId())) {
return user;
}
}
return null;
}
});
AI 数字人开关
IM UIKit 提供全局功能开关,用来控制是否使用 AI 数字人相关功能。一旦您将功能开关设置为 false
,则所有跟 AI 数字人相关功能均不可用。
建议您在 Application
或者会话列表页面加载之前配置即可:
JavaIMKitConfigCenter.setEnableAIUser(false);