iOS
更新时间:2025-05-07
说明
- Xcode 13.0 为例,如何快速接入跑通IOS大模型互动DEMO
准备环境
- Xcode 9.0 或以上版本
- 支持 iOS 9.0 或以上版本的 iOS 设备
- 支持音视频功能的模拟器或真机
下载SDK
进入智能体文档中心,点击“下载专区>SDK&Demo下载”,即可下载iOS客户端。
集成SDK
创建一个iOS项目,若已有 iOS 项目,可以直接集成 SDK。此版本SDK提供静态库及动态库形式。
添加 SDK 库文件
- 将下载的SDK中lib文件夹内的 BaiduChatAgent.framework BaiduRtcRoom.framework SocketRocket.framework文件复制到项目文件夹下
- 选择:项目 TARGET -> Build Phases ->Link Binary With Libraries,添加 SDK 静态库文件到项目。
- 选择:项目 TARGET -> Build Phases ->Link Binary With Libraries,将libyuv.a添加到项目中
- 添加依赖库
其中 : BaiduChatAgent智能体SDK用户直接调用使用的库
BaiduRtcRoom 为 BRTC SDK 主依赖库,必须添加;
SocketRocket 为三方依赖库,必须添加;
libyuv.a为百度内部依赖库,必须添加;
其他 BaiduRtc 前缀 framework 为 BRTC SDK 扩展模块依赖库,按需添加;
其余为系统依赖库,必须添加
项目设置
- 打开 Xcode,选择:项目 TARGET ->Build Settings->Other Linker Flags,设置支持objC。
快速接入说明
本节介绍如何实现快速接入智能体。 分为两部分:启动远端智能体和本地智能体
启动远端智能体
1.代码实例http方式启动,获取远端启动参数参数信息 以下是DEMO的POST方式启动实例,调试不需要鉴权。注意,正式使用必须通过服务器上调用该接口,以及防AK/SK泄漏。
Plain Text
1 NSString * url = [NSString stringWithFormat:@"%@%@", self.Server_host_env, self.Server_path_start];
2 NSURL* urlRequest = [NSURL URLWithString:url];
3 NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:urlRequest];
4 NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
5 [dict setValue:params.appId forKey:@"app_id"];
6 [dict setValue:@(params.quicStart) forKey:@"quick_start"];
7 if (params.config && [params.config length] > 0) {
8 [dict setValue:params.config forKey:@"config"];
9 }
10
11 NSError *error;
12 NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:&error];
13 request.HTTPBody = jsonData;
14 request.HTTPMethod = @"POST";
15 [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
16
17 NSURLSession *session = [NSURLSession sharedSession];
18 [[session dataTaskWithRequest:request
19 completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
20 NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
21 if ([httpResponse statusCode] != 200) {
22 NSLog(@"url %@, statusCode:%ld", urlRequest, [httpResponse statusCode]);
23 [self.delegate BaiduAgentApiConnectFailed];
24 return;
25 }
26 if (error) {
27 NSLog(@"sendStartRequest fail, error: %@", error.description);
28 return;
29 }
30 [self handleSendStartRequest:data block:block];
31
32 }] resume];
- 启动本地智能体,设置回调事件参数
Plain Text
1self.baiduChatAgent = [[BaiduChatAgent alloc] initWithParams:self.baiduChatAgentParms delegate:self];//实例生成
2
3 [self.baiduChatAgent call:self.tokenAgent instanceId:self.baiduChatAgentParms.instanceId]; //启动本地智能体终端
- 结束智能体聊天
Plain Text
1 [self.baiduChatAgent hangup];
2 [self.baiduChatAgent destroy];