From 23215cfc065c1d711579cf67fed43e898d493b16 Mon Sep 17 00:00:00 2001 From: tanlongsheng <252620078@qq.com> Date: Thu, 17 Apr 2025 17:44:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=81=8A=E5=A4=A9=E8=AE=B0?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/modules/chat/controllers/chat_controller.dart | 4 ++++ local_plugins/chat_storage/lib/chat_storage.dart | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/modules/chat/controllers/chat_controller.dart b/lib/modules/chat/controllers/chat_controller.dart index 20cd15eea..8814dc6fc 100644 --- a/lib/modules/chat/controllers/chat_controller.dart +++ b/lib/modules/chat/controllers/chat_controller.dart @@ -1,4 +1,5 @@ import 'dart:async'; +import 'dart:convert'; import 'package:amap_flutter/amap_flutter.dart'; import 'package:deep_voice/data/services/spotify_service.dart'; import 'package:get/get.dart'; @@ -845,6 +846,7 @@ class ChatController extends GetxController { role: chatMsg.sender, content: chatMsg.message, timestamp: DateTime.parse(chatMsg.timestamp), + meta: chatMsg.metadata != null ? jsonDecode(chatMsg.metadata!) : null, ); }).toList(); @@ -885,6 +887,7 @@ class ChatController extends GetxController { role: chatMsg.sender, content: chatMsg.message, timestamp: DateTime.parse(chatMsg.timestamp), + meta: chatMsg.metadata != null ? jsonDecode(chatMsg.metadata!) : null, ); }).toList(); @@ -906,6 +909,7 @@ class ChatController extends GetxController { sessionId: agent.id, message: message.content, sender: message.role, + metadata: jsonEncode(message.meta), ); } catch (e) { Logger.error('保存消息到数据库失败', e); diff --git a/local_plugins/chat_storage/lib/chat_storage.dart b/local_plugins/chat_storage/lib/chat_storage.dart index 2119dd84b..66e229b5f 100644 --- a/local_plugins/chat_storage/lib/chat_storage.dart +++ b/local_plugins/chat_storage/lib/chat_storage.dart @@ -77,6 +77,7 @@ class ChatStorage { 'sessionId': sessionId, 'message': message, 'sender': sender, + 'metadata': metadata, }); return Map.from(result); } catch (e) { @@ -99,7 +100,7 @@ class ChatStorage { final Map data = jsonDecode(result); final List messagesList = data['messages']; - + List messages = messagesList.map((item) { return ChatMessage.fromMap(Map.from(item)); }).toList(); @@ -151,4 +152,4 @@ class ChatStorage { return {'success': false, 'error': e.toString()}; } } -} \ No newline at end of file +}