本文将介绍如何通过AICallKit SDK集成消息对话智能体到您的iOS应用中。
API概览
类/协议 | API | 说明 |
ARTCAIChatEngineInterface 消息对话引擎接口定义 | 获取引擎连接状态 | |
获取当前参与会话的用户信息 | ||
获取当前会话的唯一标识 | ||
获取当前参与会话的智能体信息 | ||
获取当前智能体响应状态 | ||
获取当前音色列表 | ||
设置和获取回调事件 | ||
设置和获取TemplateConfig | ||
用户自定义信息,该信息最终传给智能体 | ||
开始聊天会话 | ||
结束聊天会话 | ||
发送消息,发送前会打断当前的回复(如果在思考&回复中) | ||
删除消息 | ||
请求历史消息列表 | ||
打断当前的消息回复 | ||
删除消息 | ||
开始播放消息内容 | ||
结束消息的播放 | ||
是否播放中 | ||
创建附件上传器对象,实现发消息带上图片/视频/文件 | ||
开始按键语音,按下去时开始录音并实时发送,需确保已经开启录音权限 | ||
结束按键语音,松开后时调用,表示当前语音消息发送完毕,等待智能体返回结果 | ||
取消按键语音,松开后时调用,表示取消当前语音消息的发送 | ||
释放资源 | ||
解析一个分享的智能体信息 | ||
启动一个分享的智能体通话 | ||
IARTCAIChatEngineCallback 消息对话引擎回调事件 | 发生了错误 | |
请求AuthToken,当ChatEngine需要执行IM登录或者IM登录AuthToken后过期时会触发 | ||
收到智能体连接状态改变 | ||
收到智能体的回复消息,智能体新的回复或者当前回复过程中消息的状态发生了变化都会触发该回调 | ||
收到自定义消息 | ||
用户发送的消息需要更新 | ||
收到智能体响应状态改变 | ||
收到Chat智能体的消息播放状态改变 | ||
ARTCAICallEngineFactory 引擎创建工厂 | 创建默认的Chat智能体引擎 |
API详情
ARTCAIChatEngineInterface详情
state
获取引擎连接状态。ARTCAIChatEngineState详情,请参见ARTCAIChatEngineState。
var state: ARTCAIChatEngineState { get }
userInfo
获取当前参与会话的用户信息。ARTCAIChatUserInfo详情,请参见ARTCAIChatUserInfo。
var userInfo: ARTCAIChatUserInfo? { get }
sessionId
获取当前会话的唯一标识
var sessionId: String? { get }
agentInfo
获取当前参与会话的智能体信息。ARTCAIChatAgentInfo详情,请参见ARTCAIChatAgentInfo。
var agentInfo: ARTCAIChatAgentInfo? { get }
agentResponeState
获取当前智能体响应状态。ARTCAIChatAgentResponseState详情,请参见ARTCAIChatAgentResponseState。
var agentResponeState: ARTCAIChatAgentResponseState { get }
voiceIdList
获取当前音色列表
var voiceIdList: [String] { get }
delegate
设置和获取回调事件。ARTCAIChatEngineDelegate详情,请参见ARTCAIChatEngineDelegate。
weak var delegate: ARTCAIChatEngineDelegate? { get set }
templateConfig
设置和获取TemplateConfig。ARTCAIChatTemplateConfig详情,请参见ARTCAIChatTemplateConfig。
var templateConfig: ARTCAIChatTemplateConfig? { get set }
userData
用户自定义信息,该信息最终传给智能体
var userData: [String: Any]? { get set }
startChat
开始聊天会话
func startChat(userInfo: ARTCAIChatUserInfo, agentInfo: ARTCAIChatAgentInfo, sessionId: String?)
参数详情:
参数 | 类型 | 含义 |
userInfo | 当前开始会话的用户信息 | |
agentInfo | 当前开始会话的智能体消息 | |
sessionId | String? | 当前会话的唯一标识,如果为空,则使用userId+agentId作为唯一标识 |
endChat
结束聊天会话
func endChat(needLogout: Bool)
参数详情:
参数 | 类型 | 含义 |
needLogout | Bool | 当前用户实时要退出链接(设置为fals会在下次startChat较少链接耗时,当你后续都不再进行聊天时,可以设置为true) |
sendMessage
发送消息,发送前会打断当前的回复(如果在思考&回复中)
func sendMessage(request: ARTCAIChatSendMessageRequest, completed:((_ msg: ARTCAIChatMessage?, _ error: NSError?) -> Void)?)
参数详情:
参数 | 类型 | 含义 |
request | 要发送的消息内容 | |
completed | (_ msg: ARTCAIChatMessage?, _ error: NSError?) -> Void | 发送结果回调 |
deleteMessage
删除消息
func deleteMessage(message: ARTCAIChatMessage, completed:((_ error: NSError?) -> Void)?)
参数详情:
参数 | 类型 | 含义 |
message | 消息对象 | |
completed | ((_ error: NSError?) -> Void)? | 结果回调 |
queryMessageList
请求历史消息列表
func queryMessageList(request: ARTCAIChatMessageListRequest, completed:((_ msgList: [ARTCAIChatMessage]?, _ error: NSError?) -> Void)?)
参数详情:
参数 | 类型 | 含义 |
request | 请求model | |
completed | (_ msgList: [ARTCAIChatMessage]?, _ error: NSError?) -> Void)? | 结果回调 |
interruptAgentResponse
打断当前的消息回复
func interruptAgentResponse()
deleteMessage
删除消息
func deleteMessage(dialogueId: String, completed:((_ error: NSError?) -> Void)?)
参数详情:
参数 | 类型 | 含义 |
dialogueId | String | 消息Id |
completed | (_ error: NSError?) -> Void)? | 结果回调 |
startPlayMessage
开始播放消息内容
func startPlayMessage(message: ARTCAIChatMessage, voiceId: String?, completed: ((NSError?) -> Void)?)
参数详情:
参数 | 类型 | 含义 |
message | 要播放的消息 | |
voiceId | voiceId | 播放的音色 |
completed | (_ error: NSError?) -> Void)? | 结果回调 |
stopPlayMessage
结束消息的播放
func stopPlayMessage()
isPlayingMessage
是否播放中
func isPlayingMessage(dialogueId: String) -> Bool
createAttachmentUploader
创建附件上传器对象,发送消息时可以通过关联AttachmentUploader实现发消息带上图片/视频/文件
func createAttachmentUploader() -> ARTCAIChatAttachmentUploader?
startPushVoiceMessage
开始按键语音,按下去时开始录音并实时发送,需确保已经开启录音权限
返回true表示成功, 返回false表示失败(一般原因是:当前状态不对、录音权限未开启等)
func startPushVoiceMessage(request: ARTCAIChatSendMessageRequest) -> Bool
参数详情:
参数 | 类型 | 含义 |
request | 要发送的消息内容 |
finishPushVoiceMessage
结束按键语音,松开后时调用,表示当前语音消息发送完毕,等待智能体返回结果
func finishPushVoiceMessage(completed:((_ msg: ARTCAIChatMessage) -> Void)?)
参数详情:
参数 | 类型 | 含义 |
completed | (_ msg: ARTCAIChatMessage) -> Void)? | 发送结果回调 |
cancelPushVoiceMessage
取消按键语音,松开后时调用,表示取消当前语音消息的发送
func cancelPushVoiceMessage()
destroy
释放资源
func destroy()
parseShareAgentChat
解析一个分享的智能体信息
func parseShareAgentChat(shareInfo: String) -> ARTCAIChatAgentShareConfig?
参数详情:
参数 | 类型 | 含义 |
shareInfo | String | 分享信息 |
generateShareAgentChat
启动一个分享的智能体通话
func generateShareAgentChat(shareConfig: ARTCAIChatAgentShareConfig, userId: String, completed: ((_ agentInfo: ARTCAIChatAgentInfo?, _ authToken: ARTCAIChatAuthToken?, _ error: NSError?, _ reqId: String) -> Void)?)
参数详情:
参数 | 类型 | 含义 |
shareConfig | 分享信息 | |
userId | String | 用户id |
completed | (_ agentInfo: ARTCAIChatAgentInfo?, _ authToken: ARTCAIChatAuthToken?, _ error: NSError?, _ reqId: String) -> Void)? | 结果回调 |
ARTCAIChatEngineDelegate详情
onErrorOccurs
发生了错误
@objc optional func onErrorOccurs(error: NSError, requestId: String?)
参数详情:
参数 | 类型 | 含义 |
error | NSError | 错误信息 |
requestId | String? | 消息请求Id,当不为nil时,该错误属于消息错误 |
onRequestAuthToken
请求AuthToken,当ChatEngine需要执行IM登录或者IM登录AuthToken后过期时会触发
@objc optional func onRequestAuthToken(userId: String, responseBlock: @escaping (_ authToken: ARTCAIChatAuthToken?, _ error: NSError?)->Void)
参数详情:
参数 | 类型 | 含义 |
userId | String | 用户Id |
responseBlock | (_ authToken: ARTCAIChatAuthToken?, _ error: NSError?)->Void | 回调Token |
onEngineStateChange
收到引擎连接状态改变
@objc optional func onEngineStateChange(state: ARTCAIChatEngineState)
参数详情:
参数 | 类型 | 含义 |
state | 当前智能体链接状态 |
onReceivedMessage
收到智能体的回复消息,智能体新的回复或者当前回复过程中消息的状态发生了变化都会触发该回调
@objc optional func onReceivedMessage(message: ARTCAIChatMessage)
参数详情:
参数 | 类型 | 含义 |
message | 消息对象 |
onReceivedCustomMessage
收到自定义消息
@objc optional func onReceivedCustomMessage(text: String)
参数详情:
参数 | 类型 | 含义 |
text | String | 消息内容 |
onUserMessageUpdated
用户发送的消息需要更新
@objc optional func onUserMessageUpdated(message: ARTCAIChatMessage)
参数详情:
参数 | 类型 | 含义 |
message | 消息对象 |
onAgentResponeStateChange
收到智能体响应状态改变
@objc optional func onAgentResponeStateChange(state: ARTCAIChatAgentResponseState, requestId: String?)
参数详情:
参数 | 类型 | 含义 |
state | 响应状态 | |
requestId | String? | 当前的消息会话 |
onMessagePlayStateChange
收到智能体的消息播放状态改变
@objc optional func onMessagePlayStateChange(message: ARTCAIChatMessage, state: ARTCAIChatMessagePlayState)
参数详情:
参数 | 类型 | 含义 |
message | 消息对象 | |
state | 播放状态 |
ARTCAICallEngineFactory详情
createChatEngine
创建默认的Chat智能体引擎
public static func createChatEngine() -> ARTCAIChatEngineInterface