Как создать чатбота с опциями ответа в флаттере? - PullRequest
2 голосов
/ 11 октября 2019

См. Изображение ниже: example

Как я могу реализовать автоответчики с использованием DialogFlow или любых других фреймворков чата в флаттере.

Я просто хочу знатьметод, чтобы получить желаемый результат, выделенный в красной области.

Ответы [ 2 ]

3 голосов
/ 03 ноября 2019

Редактировать: Используя dialogflow_v2 кажется, что вы можете сделать что-то вроде этого, чтобы получить пользовательские предложения:

В консоли Dialogflow вы можете добавить пользовательскую полезную нагрузку к вашемусообщения, подобные этому:

{"suggestions": ["Reply 1", "Reply 2"]}

Создайте BotSuggestions класс:

class BotSuggestions {
  List<String> suggestions = [];

  BotSuggestions(List<dynamic> messages) {
    messages.forEach((message) {
      if (message['payload'] != null) {
        List<dynamic> suggestionList = message['payload']['suggestions'];
        suggestionList.forEach((suggestion) => suggestions.add(suggestion));
      }
    });
  }
}

Затем вы можете использовать его следующим образом:

var botSuggestions = BotSuggestions(response.getListMessage());
print(botSuggestions.suggestions);

Вот полный пример того, как его использовать:

var userMessage = "Hi!!!";
print('User: $userMessage');
response = await dialogflow.detectIntent(userMessage);
var botSuggestions = BotSuggestions(response.getListMessage());
print('Bot: ${response.getMessage()}');
print('Suggestions: ${botSuggestions.suggestions}');

userMessage = botSuggestions.suggestions.first;
print('User: $userMessage');
response = await dialogflow.detectIntent(userMessage);
botSuggestions = BotSuggestions(response.getListMessage());
print('Bot: ${response.getMessage()}');
print('Suggestions: ${botSuggestions.suggestions}');

И это будет вывод:

I / flutter (5917): Пользователь: Привет !!!

I / флаттер (5917): Бот: Привет! Как дела?

I / флаттер (5917): Предложения: [Ответить 1, Ответить 2]

I / флаттер (5917): Пользователь: Ответить 1

I / flutter (5917): Бот: Извините, что это было?

I / flutter (5917): Предложения: []


Я спросил об этом врепозиторий пакетов, чтобы узнать, есть ли другой способ сделать это, здесь вы можете следить за темой: Как получить предложения в v2? .

0 голосов
/ 16 октября 2019

Я могу порекомендовать вам это руководство

  1. Здесь вы узнаете, как использовать диалоговое окно для вашего приложения

    https://medium.com/flutterpub/flutter-and-bots-dialogflow-d490fc7e5aaf

  2. Здесь вы узнаете, как использовать Виджет чипа во флаттере

    https://api.flutter.dev/flutter/material/Chip-class.html

  3. Пример кода

    как создавать горизонтальные и вертикальные прокручиваемые виджеты во флаттере

Надеюсь, все это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...