Browse Source

Merge commit 'aeeffb4037fe69a1e0e57af31d285674e55e352a' into new_dev

weicu
lxm 1 year ago
parent
commit
5a91532474
  1. 35
      local_plugins/chat_api/android/src/main/kotlin/com/yunqiinnovation/chat_api/ChatApiService.kt
  2. 8
      local_plugins/chat_api/ios/chat_api/Sources/chat_api/ChatApiService.swift

35
local_plugins/chat_api/android/src/main/kotlin/com/yunqiinnovation/chat_api/ChatApiService.kt

@ -628,21 +628,21 @@ class ChatApiService(private val context: android.content.Context? = null) : Cor
mapOf("context" to "Tool not found: $functionName")
}
if (sessionid == currSessionId) {
// 处理结果
try {
if(!isError){
getSessionCallback(sessionid)?.onFunctionCallResult(
sessionid,
convertMapToJsonObject(functionCall),
convertMapToJsonObject(result)
)
}else{
getSessionCallback(sessionid)?.onError(sessionid, ChatApiException(errorText))
}
} catch (e: Exception) {
Log.e(TAG, "onFunctionCallResult回调异常: ${e.message}", e)
}
if (functionName != "set_user_profile_field"){
// 处理结果
try {
if(!isError){
getSessionCallback(sessionid)?.onFunctionCallResult(
sessionid,
convertMapToJsonObject(functionCall),
convertMapToJsonObject(result)
)
}else{
getSessionCallback(sessionid)?.onError(sessionid, ChatApiException(errorText))
}
} catch (e: Exception) {
Log.e(TAG, "onFunctionCallResult回调异常: ${e.message}", e)
}
// 将结果发送回OpenAI继续对话
sendFunctionCallResultInternal(
sessionid= sessionid,
@ -650,6 +650,13 @@ class ChatApiService(private val context: android.content.Context? = null) : Cor
functionCall = functionCall,
functionResult = gson.toJson(result)
)
}else{
try {
getSessionCallback(sessionid)?.onComplete(sessionid)
} catch (ex: Exception) {
Log.e(TAG, "onComplete回调异常: ${ex.message}", ex)
}
clearCurrentSession()
}
}
}

8
local_plugins/chat_api/ios/chat_api/Sources/chat_api/ChatApiService.swift

@ -465,8 +465,8 @@ private func processToolCalls(_ sessionId:String) async -> Bool {
"id": firstToolCall.id
]
// 转换为JSON对象格式
let jsonFunctionCall = convertMapToJsonObject(functionCall)
getSessionCallback(sessionId)?.onFunctionCall(sessionId, jsonFunctionCall)
let jsonFunctionCall = convertMapToJsonObject(functionCall)
getSessionCallback(sessionId)?.onFunctionCall(sessionId, jsonFunctionCall)
// 通知上层工具调用事件
// getSessionCallback(sessionId)?.onFunctionCall(sessionId, functionCall)
@ -541,8 +541,10 @@ getSessionCallback(sessionId)?.onFunctionCall(sessionId, jsonFunctionCall)
functionCall: functionCall,
functionResult: self.jsonToString(result) ?? "{}"
)
}else{
self.getSessionCallback(sessionId)?.onComplete(sessionId)
self.clearCurrentSession()
}
}
}
} catch {

Loading…
Cancel
Save