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 +}