submitQuestion method

Future<void> submitQuestion(
  1. String question
)

Implementation

Future<void> submitQuestion(String question) async {
  if (question.isEmpty) return;

  updateChat(ChatMessageData(sender: 'user', message: question));

  textController.clear();

  final aiMessage = ChatMessageData(sender: 'ai', message: '');
  updateChat(aiMessage);

  String accumulatedResponse = "";
  log("Response from: ${selectedModel.value}");
  final stream = ollama.generate(
    question,
    model: modelMap[selectedModel.value] ?? "",
  );

  await for (final chunk in stream) {
    controller.animateTo(
      controller.position.maxScrollExtent,
      duration: Duration(seconds: 1),
      curve: Curves.fastLinearToSlowEaseIn,
    );
    print(chunk.text);
    accumulatedResponse += chunk.text;
    chatHistory.last = ChatMessageData(
        sender: modelMap[selectedModel.value] ?? 'ai',
        message: accumulatedResponse);
    chatController.add(List.from(chatHistory)); // Emit updated list
  }
}