Android
Android快速跑通大模型互动DEMO
本文介绍如何通过少量代码集成百度 大模型互动SDK ,快速实现高质量、低延时的大模型互动功能。
实现大模型互动的步骤如下:
- 调用创建互动实例接口(为了快速跑通本DEMO,该接口在Android调用,正式使用必须在服务器上调用)
- 创建并且初始化
AIAgentEngine#init
- 开始通话
AIAgentEngine#call
- 结束通话
AIAgentEngine#hangup
- 销毁资源
AIAgentEngine#destroy
- 调用销毁互动实例接口
步骤
1.前期准备
在实现 Android 大模型互动demo之前,你需要有以下准备:
Android Studio 本文档基于2022.1.1 RC 1版本 Android SDK gradle
本文档基于 gradle版本: com.android.tools.build:gradle:7.1.3
https://services.gradle.org/distributions/gradle-7.2-all.zip
申请百度智能云官网 APP ID,详见https://cloud.baidu.com/product/rtc.html
下载SDK https://cloud.baidu.com/doc/RTC/s/wm8y592lc
一台运行 Android 4.4 或以上版本的移动设备。
可以访问互联网的计算机。确保你的网络环境没有部署防火墙,否则无法正常使用百度服务。
快速Demo 下载地址:https://brtc-sdk.cdn.bcebos.com/ai/agent/android/Android.ChatAgent.v1.0.26.zip
2.创建项目
可以使用官网下载的Demo进行参考,也可自行创建项目导入SDK。下面是快速实现大模型互动能力的几个步骤:
(1)创建Android项目 按照以下步骤准备开发环境:如需创建新项目,在 Android Studio 里,依次选择 Phone and Tablet > Empty Activity,创建 Android 项目。 创建项目后,Android Studio 会自动开始同步 gradle, 稍等片刻至同步成功后再进行下一步操作。
(2)导入SDK
maven 依赖
1 implementation 'com.baidubce.mediasdk:lib_agent:1.0.1.x'
2 implementation 'com.baidubce.mediasdk:brtc:3.4.0.xx'
(3)使用SDK
- 初始化SDK
1 AIAgentEngine.AIAgentEngineParams mAiAgentParams;
2 AIAgentEngine mAiAgent;
3
4 mAiAgentParams = new AIAgentEngine.AIAgentEngineParams();
5 mAiAgentParams.appId = mClientData.mAppId;
6 mAiAgentParams.context = mClientData.mContext;
7 /** 调试日志 */
8 mAiAgentParams.verbose = true;
9 /** 更改音频编码器 */
10 if (!TextUtils.isEmpty(mClientData.mAudioCodec)) {
11 mAiAgentParams.audioCodec = mClientData.mAudioCodec;
12 }
13// /** 外部音频采集 */
14// mAiAgentParams.enableExternalAudioInput = true;
15// /** 外部音频渲染 */
16// mAiAgentParams.enableExternalAudioOutput = true;
17
18 // 初始化
19 mAiAgent = AIAgentEngine.init(mActivity, mAiAgentParams);
- 开始通话
1 mAiAgent.call(mClientData.mTokenStr, JavaTypesHelper.toLong(mClientData.mInstanceId, 1));
2
3
4 /** 用户端音频ASR结果 */
5 @Override
6 public void onUserAsrSubtitle(String text, boolean isFinal) {
7 Log.d(TAG, " onUserAsrSubtitle text " + text + " isFinal: " + isFinal);
8 }
9
10 /** AI智能体结果 */
11 @Override
12 public void onAIAgentSubtitle(String text, boolean isFinal) {
13 Log.d(TAG, " onAIAgentSubtitle text " + text + " isFinal: " + isFinal);
14 }
15
16 @Override
17 public void onFunctionCall(String id, String funcCallName, String params) {
18
19 }
20
- 结束通话&销毁资源
1 if (mAiAgent != null) {
2 mAiAgent.hangup();
3 mAiAgent.destroy();
4 }
5