通过阅读本文,您可以了解如何在iOS端接入AI实时互动消息对话智能体。
源码说明
源码下载
下载地址请参见GitHub开源项目。
源码结构
├── iOS // iOS平台的根目录
│ ├── AUIAICall.podspec // pod描述文件
│ ├── Source // 源代码文件
│ ├── Resources // 资源文件
│ ├── Example // Demo代码
│ ├── AUIBaseKits // 基础UI组件
│ ├── README.md // Readme
环境要求
Xcode 16.0 及以上版本,推荐使用最新正式版本
CocoaPods 1.9.3 及以上版本
准备 iOS 11.0 及以上版本的真机
前提条件
已在您的服务端上开发了相关接口或直接部署提供的Server源码,搭建步骤请参见项目部署。
跑通demo
源码下载后,进入Example目录。
在Example目录里执行命令
pod install --repo-update
,自动安装依赖SDK。打开工程文件
AUIAICallExample.xcworkspace
,修改包Id。进入文件
AUIAICallAgentConfig.swift
,配置消息对话智能体Id和智能体所处的区域。// AUIAICallAgentConfig.swift let ChatAgentId = "你的消息对话智能体Id" let Region = "控制台智能体ID对应的区域"
地域名称
Region Id
华东1(杭州)
cn-hangzhou
华东2(上海)
cn-shanghai
华北2(北京)
cn-beijing
华南1(深圳)
cn-shenzhen
新加坡
ap-southeast-1
完成智能体配置后,您可以通过以下两种方式来启动智能体:
已部署AppServer: 如果您已经在您的服务端上部署了阿里云提供的AppServer源码,您还需要进入文件
AUIAICallAppServer.swift
,修改服务端域名。// AUIAICallAppServer.swift public let AICallServerDomain = "你的应用服务器域名"
未部署AppServer:如果您还未部署AppServer源码,需要快速跑通Demo并体验智能体。那么您需要进入文件
AUIAIChatAuthTokenHelper.swift
,配置EnableDevelopToken
参数,并从控制台拷贝智能体使用的互动消息的App Id和App Key,在App端生成启动鉴权Token。重要该方法需在本地填写AppKey等敏感信息,仅适用于体验及开发阶段,不能用于线上发布,以防止因AppKey被盗取而导致的安全事故。
// AUIAIChatAuthTokenHelper.swift @objcMembers public class AUIAIChatAuthTokenHelper: NSObject { // 设置为true,启动Develop模式 private static let EnableDevelopToken: Bool = true // 从控制台拷贝的互动消息的AppId private static let IMDevelopAppId: String = "智能体使用的互动消息的AppId" // 从控制台拷贝互动消息的AppKey private static let IMDevelopAppKey: String = "智能体使用的互动消息的AppKey" // 从控制台拷贝互动消息的AppSign private static let IMDevelopAppSign: String = "智能体使用的互动消息的AppSign" ... }
选择"Example"Target 进行编译运行。
快速开发自己的AI通话功能
可通过以下几个步骤快速集成AUIAICall到您的APP中,让您的APP具备智能体音视频通话功能。
集成源码
导入AUIAICall:仓库代码下载后,拷贝iOS文件夹到您的APP代码目录下,改名为AUIAICall,与您的Podfile文件在同一层级,可以删除Example和AICallKit目录。
修改Podfile,引入:
AliVCSDK_ARTC:适用于实时互动的音视频终端SDK,也可以使用:AliVCSDK_Standard或AliVCSDK_InteractiveLive,具体集成方式,请参考iOS端。
AliVCInteractionMessage:适用于消息对话的音互动消息SDK,如果您已经集成,请使用1.5.0版本及以上,详细内容,请参见直播互动消息(新)。
ARTCAICallKit:AI实时互动通话场景SDK。
AUIFoundation:基础UI组件。
AUIAICall:AI通话场景UI组件源码。
#需要iOS11.0及以上才能支持 platform :ios, '11.0' target '你的App target' do # 根据自己的业务场景,集成合适的音视频终端SDK,支持:AliVCSDK_ARTC、AliVCSDK_Standard、AliVCSDK_InteractiveLive pod 'AliVCSDK_ARTC', '~> 7.4.0' # AI实时互动通话场景SDK pod 'ARTCAICallKit/Chatbot', '~> 2.7.0' # 基础UI组件源码 pod 'AUIFoundation', :path => "./AUIAICall/AUIBaseKits/AUIFoundation/", :modular_headers => true # AI通话场景UI组件源码 pod 'AUIAICall/Chatbot', :path => "./AUIAICall/" # 如果你的业务还需要支持消息对话,还需要集成AliVCInteractionMessage,版本最低是1.7.0 pod 'AliVCInteractionMessage', '~> x.x.x' end
执行
pod install --repo-update
源码集成完成
工程配置
添加麦克风与摄像头权限,打开工程
info.Plist
,添加NSMicrophoneUsageDescription和NSCameraUsageDescription权限。打开工程设置,在Signing & Capabilities中开启Background Modes,如果不开启后台模式,则需要自行处理在进入后台时结束通话。
源码配置
已完成前提条件所需步骤。
进入
AUIAICallAppServer.swift
文件,修改服务端域名。// AUIAICallAppServer.swift public let AICallServerDomain = "你的应用服务器域名"
说明如果您还未部署AppServer,您可以使用App端生成鉴权Token的方式,快速测试并跑通Demo。详细内容,请参见未部署AppServer。
调用API
上述工作完成后,接下来可以根据自身的业务场景和交互,在您的APP其他模块或主页上通过组件接口启动智能体对话,也可以根据自身的需求修改源码。
// 引入组件
import AUIAICall
import ARTCAICallKit
import AUIFoundation
// userId推荐使用你的App登录后的用户id
let userId = "123"
// 设置deviceId
let deviceId = UIDevice.current.identifierForVendor?.uuidString
let userInfo = ARTCAIChatUserInfo(userId, deviceId)
// 设置智能体,智能体Id不能为nil
let agentId = "xxxxx"
let agentInfo = ARTCAIChatAgentInfo(agentId: agentId)
// 创建消息对话的ViewController
let vc = AUIAIChatViewController(userInfo: userInfo, agentInfo: agentInfo)
// 打开通话界面
self.navigationController?.pushViewController(vc, animated: true)