From ffa76c3a192c36827669335de4390262da5fd972 Mon Sep 17 00:00:00 2001 From: hunteraraujo Date: Sun, 24 Sep 2023 17:15:36 -0700 Subject: [PATCH] Integrated continuousModeSteps from SettingsViewModel into ChatViewModel Refactored the ChatViewModel's sendChatMessage method to utilize the continuousModeSteps setting from the SettingsViewModel. This allows the continuous chat mode to honor the user's preference from the settings. Also introduced an optional currentStep parameter with a default value, enabling better control over the progression of continuous mode. --- frontend/lib/viewmodels/chat_viewmodel.dart | 12 ++++++++++-- frontend/lib/views/chat/chat_view.dart | 15 +++++++++++---- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/frontend/lib/viewmodels/chat_viewmodel.dart b/frontend/lib/viewmodels/chat_viewmodel.dart index f85c9d5e..345c599d 100644 --- a/frontend/lib/viewmodels/chat_viewmodel.dart +++ b/frontend/lib/viewmodels/chat_viewmodel.dart @@ -103,7 +103,8 @@ class ChatViewModel with ChangeNotifier { } /// Sends a chat message for a specific task. - void sendChatMessage(String? message) async { + void sendChatMessage(String? message, + {required int continuousModeSteps, int currentStep = 1}) async { if (_currentTaskId == null) { print("Error: Task ID is not set."); return; @@ -147,7 +148,14 @@ class ChatViewModel with ChangeNotifier { notifyListeners(); if (_isContinuousMode) { - sendChatMessage(null); + print("Continuous Mode: Step $currentStep of $continuousModeSteps"); + if (currentStep < continuousModeSteps) { + sendChatMessage(null, + continuousModeSteps: continuousModeSteps, + currentStep: currentStep + 1); + } else { + _isContinuousMode = false; + } } print("Chats added for task ID: $_currentTaskId"); diff --git a/frontend/lib/views/chat/chat_view.dart b/frontend/lib/views/chat/chat_view.dart index 42d33590..34517d0b 100644 --- a/frontend/lib/views/chat/chat_view.dart +++ b/frontend/lib/views/chat/chat_view.dart @@ -1,4 +1,5 @@ import 'package:auto_gpt_flutter_client/models/message_type.dart'; +import 'package:auto_gpt_flutter_client/viewmodels/settings_viewmodel.dart'; import 'package:auto_gpt_flutter_client/viewmodels/task_viewmodel.dart'; import 'package:auto_gpt_flutter_client/views/chat/agent_message_tile.dart'; import 'package:auto_gpt_flutter_client/views/chat/chat_input_field.dart'; @@ -94,13 +95,19 @@ class _ChatViewState extends State { child: ChatInputField( onSendPressed: (message) async { if (widget.viewModel.currentTaskId != null) { - widget.viewModel - .sendChatMessage((message == "") ? null : message); + widget.viewModel.sendChatMessage( + (message == "") ? null : message, + continuousModeSteps: + Provider.of(context, listen: false) + .continuousModeSteps); } else { String newTaskId = await taskViewModel.createTask(message); widget.viewModel.setCurrentTaskId(newTaskId); - widget.viewModel - .sendChatMessage((message == "") ? null : message); + widget.viewModel.sendChatMessage( + (message == "") ? null : message, + continuousModeSteps: + Provider.of(context, listen: false) + .continuousModeSteps); } }, onContinuousModePressed: () {