全功能集成(iOS)

最近更新时间:2026-03-17 11:34:47

我的收藏

功能预览

通过集成 AIConversationKit 组件,您可为产品快速集成前沿的 AI 对话能力,实现流畅自然的智能交互体验,显著提升用户活跃度与满意度。
在线教育
智能客服
情感陪伴







准备工作

开通服务

使用 AIConversationKit 前,请先参考 开通服务,领取体验版或开通付费版。

环境要求

Xcode:需使用 Xcode 15 或更高版本。
iOS 系统:支持 iOS 13.0 或更高版本的设备。
CocoaPods 环境:已安装 CocoaPods 环境。如果您尚未安装,请参见 CocoaPods 官网安装,或按以下步骤操作:
使用 gem 安装 CocoaPods:在终端中执行 sudo gem install cocoapods 命令进行安装。
提示:
sudo gem install cocoapods 安装过程中可能需要输入电脑密码,按提示输入管理员密码即可。

代码集成

步骤 1:获取 AIConversationKit 组件

1. GitHub 下载 zip 文件,解压后,您会看到 AIConversationKit 目录、AIConversationKit.podspec 文件和 Resource 目录。

2. 复制上一步中解压得到的目录里的 AIConversationKitpodspecResource 到您的工程中。

3. 然后在 .xcodeproj 打开控制台,执行 pod init
4. 在生成的 Podfile 里这样写:
pod 'AIConversationKit',:path => 'AIConversationKit.podspec'

5. 执行 pod install

6. 打开 .xcworkspace:

7. 配置证书信息:


步骤 2:工程配置

使用 AI 对话,需要授权麦克风使用权限。在 App 的 Info.plist 中添加以下麦克风声明,对应麦克风系统弹出授权对话框时的提示信息。
<key>NSMicrophoneUsageDescription</key>
<string>此应用需要使用麦克风进行 AI 语音对话</string>


完成登录

在您的项目中添加登录代码,这是使用 AIConversationKit 各项功能的关键前提:
swift
import TUICore
import AIConversationKit

// 示例代码在 didFinishLaunchingWithOptions 完成登录,推荐您在自己登录业务完成后再调用登录服务
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
let userId = "denny" // 请替换为您的 UserID
let sdkAppId = 1600000001 // 请替换为开通服务控制台的 SDKAppID
let sdkSecretKey = "xxx" // 请替换为开通服务控制台的 SDKSecretKey
let userSig = GenerateTestUserSig.genTestUserSig(sdkAppId: sdkAppId, userId: userId, secrectkey: sdkSecretKey)
TUILogin.login(Int32(sdkAppId), userID: userId, userSig:userSig){
print("login success")
} fail: { code, message in
print("login failed, code: \\(code), error: \\(message ?? "nil")")
}
return true
}


登录接口参数说明
参数
类型
说明
SDKAppID
Int
UserID
String
当前用户的唯一 ID,仅包含英文字母、数字、连字符和下划线。
userSig
String
用于腾讯云鉴权的票据。请注意:
开发环境:您可以采用本地 GenerateTestUserSig.genTestSig 函数生成 UserSig 或者通过 UserSig 辅助工具 生成临时的 UserSig。
生产环境:为了防止密钥泄露,请务必采用服务端生成 UserSig 的方式。详细信息请参见 服务端生成 UserSig
更多信息请参见 如何计算及使用 UserSig

集成 AI 对话界面

只需要将 AIConversationView 添加到您的 ViewController 中即可。
import UIKit
import AIConversationKit

class YourAIViewController: UIViewController {

private let conversationView = AIConversationView()

override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(conversationView)
conversationView.frame = view.bounds
conversationView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
}
}

开始您的第一次 AI 对话

登录成功后,使用以下代码发起 AI 对话:
import UIKit
import AIConversationKit
import TUICore

class YourAIViewController: UIViewController {

// ... 其他代码 ...
private func startAIConversation() {
var config = AIConversationConfig()
let sdkAppId = 1600000001 // 1、替换 sdkAppId
let sdkSecretKey = "xxx" // 2、替换 sdkSecretKey
let aiRobotId = "robot_\\(TUILogin.getUserID() ?? "")"
let aiRobotSig = GenerateTestUserSig.genTestUserSig(sdkAppId: sdkAppId, userId: aiRobotId, secrectkey: sdkSecretKey)
config.agentConfig?.aiRobotId = aiRobotId
config.agentConfig?.aiRobotSig = aiRobotSig

config.secretId = "xxx" // 3、替换 secretId
config.secretKey = "xxx" // 4、替换 secretKey

// 5、替换 llmConfig
config.llmConfig = "{\\"LLMType\\":\\"openai\\",\\"Model\\":\\"hunyuan-turbo-latest\\",\\"SystemPrompt\\":\\"您是一个个人助手\\",\\"APIUrl\\":\\"https://hunyuan.cloud.tencent.com/openai/v1/chat/completions\\",\\"APIKey\\":\\"xxxx\\",\\"History\\":5,\\"Streaming\\":true}"
// 6、替换 ttsConfig
config.ttsConfig = "{\\"TTSType\\":\\"tencent\\",\\"AppId\\":\\"xxx\\",\\"SecretId\\":\\"xxx\\",\\"SecretKey\\":\\"xxx\\",\\"VoiceType\\":\\"502001\\",\\"Speed\\":1.25,\\"Volume\\":5,\\"PrimaryLanguage\\":1,\\"FastVoiceType\\":\\"\\"}"

conversationView.startAIConversation(config: config) { code, message in
print("startAIConversation code: \\(code), message: \\(message)")
}
}
}
1. sdkAppId 和 sdkSecretKey 使用 完成登录 获取的数据即可。
2. 请到 准备工作 配置 AI 对话后台参数,包括基础配置、STT、LLM、TTS;然后点击右下角的快速跑通,切换到 iOS,获取 SecretId、SecretKey 和 Config 参数。

3. 将云 API 的 SecretId 和 SecretKey 复制到config.secretIdconfig.secretKey中,SecretId 和 SecretKey 请妥善保存,避免泄露。
4. 将 Config 信息复制到 Json 解析工具中,如 JsonUtil,将 LLMConfig 对应的字符串值复制到config.llmConfig,将 TTSConfig 对应的字符串值复制到config.ttsConfig中。
说明:
开发环境:如果您正在本地开发调试阶段,可以采用上述方式快速集成 AI 对话。该方法中账号信息很容易被反编译逆向破解,一旦您的密钥泄露,攻击者就可以盗用您的腾讯云流量。
生产环境:如果您的项目要发布上线,请将上述账号信息保存到服务端中,避免流量被盗用;相关对话配置,也可以保存到服务端中,方便动态调整 AI 对话效果。

调节对话效果

为了在 AI 对话中获得最佳体验,清晰的声音采集至关重要。我们提供多种参数设置,帮助您在不同环境下都能获得清晰的语音交互效果。

vadLevel 远场人声抑制

在多人交谈的环境中,其他人声可能会干扰 AI 对您声音的识别。通过调整人声抑制级别,我们可以有效过滤环境中的其他人声干扰,让 AI 更准确地专注于您的语音;您可以通过设置 config 中的 sttConfig.vadLevel 参数来达到期望的效果。
级别
效果描述
使用场景
0
关闭远场人声抑制功能
在嘈杂环境下AI容易被噪声打断,可能导致无法正常对话。
1
开启轻度抑制模式
适合相对安静的环境使用,例如家庭、图书馆。
2
推荐默认设置
适用于大多数日常场景(默认值)。
3
开启强力抑制模式
适合嘈杂环境使用,如菜市场、车站。
代码配置示例
var config = AIConversationConfig()
config.sttConfig?.vadLevel = 3

conversationView.startAIConversation(config: config, completion: nil)

interruptMode 打断模式

根据您的使用习惯,可以设置不同的打断方式,在 AI 说话时进行打断,使对话交互更加自然流畅;您可以通过设置 config 中的 agentConfig.interruptMode 参数来达到期望的效果。
模式
功能描述
适用场景
0
智能模式
AI 正在说话时,可通过点击屏幕或用户说话打断;(默认值)
1
手动打断
AI 正在说话时,只能通过点击屏幕打断;
代码配置示例
var config = AIConversationConfig()
config.agentConfig?.interruptMode = 1

conversationView.startAIConversation(config: config, completion: nil)

language 语言识别

根据说话者使用的语言进行设置,AI 才能准确地将语音转换成对应的文字内容;您可以通过设置 config 中的 sttConfig.language 参数来达到期望的效果。
语言代码
语言名称
说明
"zh"
中文
支持普通话识别 (默认值)
"en"
英语
支持英语识别
更多支持的语言,请参考 STTConfig 官方文档。
代码配置示例
var config = AIConversationConfig()
config.sttConfig?.language = "en"

conversationView.startAIConversation(config: config, completion: nil)

定制您的 UI

更新背景图

将新的背景图保存到Assets.xcassets 文件夹中,通过 setBackgroundImage 接口设置您自定义的背景图。
conversationView.setBackgroundImage(UIImage(named: "ai_conversation_full_screen"))
最终效果:


图标定制

AIConversationView 用到的所有图标都存放于 Resource/AIConversationKit.xcassets 目录下, 部分示例如下,您可以根据您的诉求来替换目录下的图标。
图标路径
图标样式
详细描述
ai_pause

打断 AI 说话的按钮。
ai_audio_unmute

本地 Mic 打开时的图标。
ai_audio_mute

本地 Mic 被静音时的图标。
ai_hangup

结束 AI 对话的图标。
例如,您需要替换 Mic 的图标,将新的图标直接覆盖原来的图标即可。
最终效果:


隐藏 UI

如果您不需要麦克风、字幕、AI 交互按钮,可以通过 disableFeatures 将它移除。例如您需要移除麦克风、AI状态、打断 AI,只留下挂断按钮,可以通过以下代码实现。
conversationView.disableFeatures([.mic, .interruptSpeech, .aiStatusAnimation])
最终效果:


常见问题

pod install 执行后本地安装找不到 AIConversationKit 最新版本?

如果无法安装 TUILiveKit 最新版本,请按以下步骤操作:
1. 在 Podfile 所在目录下删除 Podfile.lock Pods,您可以选择手动删除或终端执行以下命令
// cd 到 Podfile 所在目录下

rm -rf Pods/
rm Podfile.lock
2. 在 Podfile 所在目录下执行 pod install --repo-update
// cd 到 Podfile 所在目录下

pod install --repo-update

每次进房都需要调用登录吗?

不需要。通常您只需要完成一次 TUILogin.login 调用即可,我们建议您将 TUILogin.loginTUILogin.logout 与自己的登录业务关联。

Podfile 文件有没有示例配置可以参考?

您可以参考 GitHub AIConversationKit Example 工程 Podfile 示例文件。

部署目标版本过低警告 ?

如果您遇到如下错误:
clang: error: SDK does not contain 'libarclite' at the path '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a'; try increasing the minimum deployment target

部署目标版本过低警告:
TXLiteAVSDK_Professional: iOS 8.0 → 需要 12.0+
TXIMSDK_Plus_iOS_XCFramework: iOS 8.0 → 需要 12.0+
TUICore: iOS 9.0 → 需要 12.0+
请参考 GitHub AIConversationKit Example 工程 Podfile 示例文件,添加以下代码:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO'
config.build_settings['ENABLE_BITCODE'] = 'NO'
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = 13.0
end
end
end