add sqllite utils
This commit is contained in:
@@ -4,7 +4,9 @@ import '../widgets/chat_bubble.dart';
|
||||
import '../widgets/chat_input.dart';
|
||||
import '../widgets/gradient_background.dart';
|
||||
import '../models/chat_message.dart';
|
||||
import 'dart:convert';
|
||||
//import 'dart:convert';
|
||||
import '../config/database_helper.dart';
|
||||
import '../models/message_model.dart';
|
||||
|
||||
class ChatScreen extends StatefulWidget {
|
||||
const ChatScreen({super.key});
|
||||
@@ -18,6 +20,9 @@ class _ChatScreenState extends State<ChatScreen> {
|
||||
int? _currentStreamingMessageIndex;
|
||||
int _lastUserMessageCount = 0; // 添加这个变量跟踪用户消息数量
|
||||
|
||||
final DatabaseHelper _dbHelper = DatabaseHelper();
|
||||
List<Message> _messagesDB = [];
|
||||
|
||||
void _handleSendMessage(String text) {
|
||||
if (text.trim().isEmpty) return;
|
||||
setState(() {
|
||||
@@ -41,6 +46,12 @@ class _ChatScreenState extends State<ChatScreen> {
|
||||
));
|
||||
_lastUserMessageCount = _getUserMessageCount(); // 更新用户消息计数
|
||||
_currentStreamingMessageIndex = null; // 重置流索引,强制创建新气泡
|
||||
|
||||
_addMessage(Message(
|
||||
role: 'user',
|
||||
message: text,
|
||||
));
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
@@ -76,6 +87,11 @@ class _ChatScreenState extends State<ChatScreen> {
|
||||
}
|
||||
}
|
||||
|
||||
_addMessage(Message(
|
||||
role: 'assistant',
|
||||
message: text,
|
||||
));
|
||||
|
||||
// 如果完成了,重置索引
|
||||
if (isComplete) {
|
||||
_currentStreamingMessageIndex = null;
|
||||
@@ -83,6 +99,20 @@ class _ChatScreenState extends State<ChatScreen> {
|
||||
});
|
||||
}
|
||||
|
||||
Future<void> _loadMessages() async {
|
||||
List<Map<String, dynamic>> records = await _dbHelper.getMessages();
|
||||
setState(() {
|
||||
_messagesDB = records.map((record) => Message(
|
||||
role: record['role'],
|
||||
message: record['message'],
|
||||
)).toList();
|
||||
});
|
||||
}
|
||||
|
||||
Future<void> _addMessage(Message message) async {
|
||||
await _dbHelper.insertMessage(message.toMap());
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
|
||||
Reference in New Issue
Block a user