|
|
@ -68,18 +68,18 @@ public class ChatApiService: NSObject { |
|
|
|
|
|
|
|
|
/// 设置流式回调 |
|
|
/// 设置流式回调 |
|
|
public func setStreamCallback(_ sessionId: String, _ callback: StreamCallback) { |
|
|
public func setStreamCallback(_ sessionId: String, _ callback: StreamCallback) { |
|
|
print("[ChatApiService] 设置回调 for sessionId: \(sessionId)") |
|
|
// print("[ChatApiService] 设置回调 for sessionId: \(sessionId)") |
|
|
print("[ChatApiService] 回调对象: \(callback)") |
|
|
// print("[ChatApiService] 回调对象: \(callback)") |
|
|
self.sessionCallbacks[sessionId] = callback |
|
|
self.sessionCallbacks[sessionId] = callback |
|
|
print("[ChatApiService] 回调设置完成,当前回调数量: \(sessionCallbacks.count)") |
|
|
print("[ChatApiService] 回调设置完成,当前回调数量: \(sessionCallbacks.count)") |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public func getSessionCallback(_ sessionId: String) -> StreamCallback? { |
|
|
public func getSessionCallback(_ sessionId: String) -> StreamCallback? { |
|
|
let callback = self.sessionCallbacks[sessionId] |
|
|
let callback = self.sessionCallbacks[sessionId] |
|
|
print("[ChatApiService] getSessionCallback for sessionId: \(sessionId)") |
|
|
// print("[ChatApiService] getSessionCallback for sessionId: \(sessionId)") |
|
|
print("[ChatApiService] sessionCallbacks count: \(sessionCallbacks.count)") |
|
|
// print("[ChatApiService] sessionCallbacks count: \(sessionCallbacks.count)") |
|
|
print("[ChatApiService] sessionCallbacks keys: \(Array(sessionCallbacks.keys))") |
|
|
// print("[ChatApiService] sessionCallbacks keys: \(Array(sessionCallbacks.keys))") |
|
|
print("[ChatApiService] callback exists: \(callback != nil)") |
|
|
// print("[ChatApiService] callback exists: \(callback != nil)") |
|
|
return callback |
|
|
return callback |
|
|
} |
|
|
} |
|
|
//移除回调函数 |
|
|
//移除回调函数 |
|
|
@ -311,7 +311,7 @@ public func sendMessageStream(_ sessionId: String, messages: [[String: Any]]) { |
|
|
tools: chatTools |
|
|
tools: chatTools |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
print("[ChatApiService] 发起AI问答 问题:\(messages[0]) 工具数量: \(chatTools.count)") |
|
|
// print("[ChatApiService] 发起AI问答 问题:\(messages[0]) 工具数量: \(chatTools.count)") |
|
|
} else { |
|
|
} else { |
|
|
query = ChatQuery( |
|
|
query = ChatQuery( |
|
|
messages: chatMessages, |
|
|
messages: chatMessages, |
|
|
@ -335,14 +335,14 @@ public func sendMessageStream(_ sessionId: String, messages: [[String: Any]]) { |
|
|
// 处理文本内容 |
|
|
// 处理文本内容 |
|
|
if let content = delta.content { |
|
|
if let content = delta.content { |
|
|
replyContext += content |
|
|
replyContext += content |
|
|
print("[ChatApiService] 收到内容: \(content)") |
|
|
// print("[ChatApiService] 收到内容: \(content)") |
|
|
print("[ChatApiService] 当前sessionId: \(sessionId)") |
|
|
// print("[ChatApiService] 当前sessionId: \(sessionId)") |
|
|
|
|
|
|
|
|
let callback = self.getSessionCallback(sessionId) |
|
|
let callback = self.getSessionCallback(sessionId) |
|
|
if let callback = callback { |
|
|
if let callback = callback { |
|
|
print("[ChatApiService] 找到回调,准备调用 onToken") |
|
|
// print("[ChatApiService] 找到回调,准备调用 onToken") |
|
|
callback.onToken(sessionId, content) |
|
|
callback.onToken(sessionId, content) |
|
|
print("[ChatApiService] onToken 调用完成") |
|
|
// print("[ChatApiService] onToken 调用完成") |
|
|
} else { |
|
|
} else { |
|
|
print("[ChatApiService] 警告:未找到 sessionId \(sessionId) 的回调") |
|
|
print("[ChatApiService] 警告:未找到 sessionId \(sessionId) 的回调") |
|
|
} |
|
|
} |
|
|
@ -932,7 +932,7 @@ private func convertMapToJsonObject(_ map: [String: Any]) -> [String: Any] { |
|
|
|
|
|
|
|
|
// 创建工具参数 |
|
|
// 创建工具参数 |
|
|
let toolParam = ChatQuery.ChatCompletionToolParam(function: functionDefinition) |
|
|
let toolParam = ChatQuery.ChatCompletionToolParam(function: functionDefinition) |
|
|
print("解析工具 \(name):\(schema)") |
|
|
// print("解析工具 \(name):\(schema)") |
|
|
chatTools.append(toolParam) |
|
|
chatTools.append(toolParam) |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|