|
|
@ -59,6 +59,7 @@ class AgentServiceImpl: NSObject { |
|
|
internal var isAiStreaming: Bool = false |
|
|
internal var isAiStreaming: Bool = false |
|
|
|
|
|
|
|
|
var currsessionId: String = "" |
|
|
var currsessionId: String = "" |
|
|
|
|
|
var language: String = "" |
|
|
|
|
|
|
|
|
private var idleTimer: DispatchSourceTimer? |
|
|
private var idleTimer: DispatchSourceTimer? |
|
|
private let maxIdleSeconds: TimeInterval = 10 |
|
|
private let maxIdleSeconds: TimeInterval = 10 |
|
|
@ -158,6 +159,9 @@ class AgentServiceImpl: NSObject { |
|
|
if let openaivisionModel = config["openaivisionModel"] as? String { |
|
|
if let openaivisionModel = config["openaivisionModel"] as? String { |
|
|
self.visionModel = openaivisionModel |
|
|
self.visionModel = openaivisionModel |
|
|
} |
|
|
} |
|
|
|
|
|
if let supportedLanguages = config["supportedLanguages"] as? [String] { |
|
|
|
|
|
self.language = supportedLanguages[0] |
|
|
|
|
|
} |
|
|
if let customSystemPrompt = config["systemPrompt"] as? String, !customSystemPrompt.isEmpty { |
|
|
if let customSystemPrompt = config["systemPrompt"] as? String, !customSystemPrompt.isEmpty { |
|
|
self.systemPrompt = customSystemPrompt |
|
|
self.systemPrompt = customSystemPrompt |
|
|
} else { |
|
|
} else { |
|
|
@ -208,7 +212,7 @@ class AgentServiceImpl: NSObject { |
|
|
azureTtsHelper?.addListener(self) |
|
|
azureTtsHelper?.addListener(self) |
|
|
|
|
|
|
|
|
// 获取支持的语言列表,支持从配置中读取 |
|
|
// 获取支持的语言列表,支持从配置中读取 |
|
|
let supportedLanguages = config["supportedLanguages"] as? [String] ?? ["zh-CN", "en-US"] |
|
|
let supportedLanguages = config["supportedLanguages"] as? [String] ?? ["zh-CN"] |
|
|
|
|
|
|
|
|
guard let asrSuccess = azureAsrHelper?.initialize( |
|
|
guard let asrSuccess = azureAsrHelper?.initialize( |
|
|
subscriptionKey: azureSpeechKey, |
|
|
subscriptionKey: azureSpeechKey, |
|
|
@ -476,9 +480,16 @@ audioStream.saveAudioDataTo(data: audioData) |
|
|
var messages: [[String: Any]] = [] |
|
|
var messages: [[String: Any]] = [] |
|
|
|
|
|
|
|
|
if !systemPrompt.isEmpty { |
|
|
if !systemPrompt.isEmpty { |
|
|
|
|
|
var info = UserPortrait.shared.getAll() |
|
|
let info: [String: String] = UserPortrait.shared.getAll() |
|
|
info["language"] = self.language |
|
|
|
|
|
|
|
|
|
|
|
// 添加调试日志 |
|
|
|
|
|
print("系统提示词模板: \(systemPrompt)") |
|
|
|
|
|
print("用户画像数据: \(info)") |
|
|
|
|
|
|
|
|
let _systemPrompt = fillTemplate(systemPrompt, with: info) |
|
|
let _systemPrompt = fillTemplate(systemPrompt, with: info) |
|
|
|
|
|
print("替换后的系统提示词: \(_systemPrompt)") |
|
|
|
|
|
|
|
|
messages.append(chatApiService.createSystemMessage(content: _systemPrompt)) |
|
|
messages.append(chatApiService.createSystemMessage(content: _systemPrompt)) |
|
|
os_log("添加系统提示消息", log: logger, type: .info) |
|
|
os_log("添加系统提示消息", log: logger, type: .info) |
|
|
} |
|
|
} |
|
|
@ -897,6 +908,8 @@ private func jsonToString(_ json: [String: Any]) -> String? { |
|
|
os_log("语言列表为空,使用默认语言", log: logger, type: .info) |
|
|
os_log("语言列表为空,使用默认语言", log: logger, type: .info) |
|
|
return false |
|
|
return false |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
self.language = languages[0] |
|
|
|
|
|
|
|
|
// 如果正在识别,需要先停止 |
|
|
// 如果正在识别,需要先停止 |
|
|
let wasRecognizing = isRecognizing |
|
|
let wasRecognizing = isRecognizing |
|
|
|