【发布时间】:2019-10-11 12:26:55
【问题描述】:
【问题讨论】:
标签: flutter dart dialogflow-es
【问题讨论】:
标签: flutter dart dialogflow-es
您可以使用 dialogflow 来生成机器人的响应,然后添加芯片 Widegt 来表示一个可操作的按钮,如下所示:
Chip
(avatar: CircleAvatar(
backgroundColor: Colors.grey.shade800,
child: Text('AB'),
),
label: Text('Aaron Burr'),)
此外,您可以使用 Dialogflow 构建聊天机器人并向用户提供选项按钮。
添加选项按钮的方式有很多种,例如自定义payload、谷歌助手等。使用custom payload可以添加自定义富消息类型。
要使用选项按钮构建聊天机器人并将其添加到您的 Flutter 应用程序中,您可以使用Kommunicate 之类的平台,该平台允许您将机器人部署到移动应用程序中。
要将此聊天机器人集成到您的 Flutter 应用程序中,您可以查看此参考资料documentation。
【讨论】:
编辑:使用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}');
这将是输出:
我/颤动(5917):用户:嗨!!!
我/颤动(5917):机器人:嗨!你好吗?
I/flutter (5917):建议:[回复 1,回复 2]
I/flutter (5917):用户:回复 1
I/flutter (5917):Bot:抱歉,那是什么?
I/flutter (5917):建议:[]
我在包存储库中询问了这个问题,看看是否有其他方法可以做到这一点,您可以在此处关注线程:How to get suggestions in v2?。
【讨论】:
我可能会向你推荐本指南
在这里您将学习如何在您的应用中使用对话框流
https://medium.com/flutterpub/flutter-and-bots-dialogflow-d490fc7e5aaf
这里你将学习如何在flutter中使用Chip widget
示例代码
how to create horizontal and vertical scrollable widgets in flutter
我希望这一切都会对你有所帮助。
【讨论】: