Редактировать: Используя 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? .