iampawan / ChatGPT-Flutter-AIChatBot

A Chatbot chat app built using the Flutter framework and OpenAI's GPT-3 language model.
230 stars 99 forks source link

Fix: Repeated message issue in chat screen #5

Closed cynthiakonar closed 1 year ago

cynthiakonar commented 1 year ago

Hey there! I have found a working fix for this issue #3 Answers are repeated

Change this section in chat_screen.dart:

 if (_isImageSearch) {
      final request = GenerateImage(message.text, 1, size: "256x256");

      _subscription = chatGPT!
          .generateImageStream(request)
          .asBroadcastStream()
          .listen((response) {
        Vx.log(response.data!.last!.url!);
        insertNewData(response.data!.last!.url!, isImage: true);
      });
    } else {
      final request = CompleteReq(
          prompt: message.text, model: kTranslateModelV3, max_tokens: 200);

      _subscription = chatGPT!
          .onCompleteStream(request: request)
          .asBroadcastStream()
          .listen((response) {
        Vx.log(response!.choices[0].text);
        insertNewData(response.choices[0].text, isImage: false);
      });
    }
  } 

New change:

 if (_isImageSearch) {
      final request = GenerateImage(message.text, 1, size: "256x256");

      _subscription = chatGPT!
          .generateImageStream(request)
          .distinct()
          .first
          .asStream()
          .listen((response) {
        Vx.log(response.data!.last!.url!);
        insertNewData(response.data!.last!.url!, isImage: true);
      });
    } else {
      final request = CompleteReq(
          prompt: message.text, model: kTranslateModelV3, max_tokens: 200);
      _subscription = chatGPT!
          .onCompleteStream(request: request)
          .distinct()
          .first
          .asStream()
          .listen((response) {
        Vx.log(response!.choices.first.text);
        insertNewData(response.choices.first.text, isImage: false);
      });
    } 

image

iampawan commented 1 year ago

Thanks @cynthiakonar, I have fixed it already.