本文將介紹如何通過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) -> BoolcreateAttachmentUploader
建立附件上傳器對象,發送訊息時可以通過關聯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