Browse Source

上传代码优化

weicu
liwei1dao 1 year ago
parent
commit
40628c4f30
  1. 27
      lib/modules/agent/controllers/agent_controller.dart
  2. 2
      local_plugins/open_ai_service/android/src/main/kotlin/com/yunqiinnovation/open_ai_service/OpenAIService.kt

27
lib/modules/agent/controllers/agent_controller.dart

@ -382,22 +382,15 @@ class AgentController extends GetxController {
logger.i('Flutter 结束调用 mcp: $result, $functionCall');
if (result.isNotEmpty) {
final parsedResult = jsonDecode(result);
final meta = parsedResult["meta"];
Map<String, dynamic> metaResult = {};
if (meta != null && meta is String && meta.isNotEmpty) {
try {
metaResult = jsonDecode(meta);
} catch (e) {
print('解析meta数据失败: $e');
}
}
if(metaResult.isNotEmpty){
final meta = parsedResult["meta"] as String;
final metaResult = jsonDecode(meta);
if (meta.isNotEmpty) {
logger.i('Flutter 结束调用 mcp metaResult: $metaResult');
// 判断是否为新的回复或响应ID是否改变
if (_isNewAssistantResponse || _currentResponseId != responseId) {
// 添加新消息
messages.add(Message(isUser: false, text: "", meta: metaResult));
messages
.add(Message(isUser: false, text: "", meta: metaResult));
_isNewAssistantResponse = false;
_currentResponseId = responseId;
} else {
@ -407,11 +400,14 @@ class AgentController extends GetxController {
messages[lastIndex] = Message(
isUser: false,
text: messages[lastIndex].text,
meta: meta,
meta: metaResult,
timestamp: messages[lastIndex].timestamp,
);
}
}
messages.refresh();
// 滚动到底部
_scrollToBottom();
}
}
break;
@ -467,7 +463,8 @@ class AgentController extends GetxController {
// 标记为新的AI回复
_isNewAssistantResponse = true;
// 根据TTS状态决定是否朗读
await AgentService.processTextInput(text, speakResponse: isTtsEnabled.value);
await AgentService.processTextInput(text,
speakResponse: isTtsEnabled.value);
} catch (e) {
logger.e('发送文本消息失败: $e');
isProcessing.value = false;

2
local_plugins/open_ai_service/android/src/main/kotlin/com/yunqiinnovation/open_ai_service/OpenAIService.kt

@ -698,7 +698,7 @@ class OpenAIService(private val context: Context? = null) : CoroutineScope {
put("arguments", firstToolCall.arguments)
put("id", firstToolCall.id)
}
Log.d(TAG, "工具调用: id=${firstToolCall.id}, name=${firstToolCall.name}")
Log.d(TAG, "工具调用: id=${firstToolCall.id}, name=${firstToolCall.name} arguments=${firstToolCall.arguments}")
// 通知上层工具调用事件
callback.onFunctionCall(functionCall)

Loading…
Cancel
Save