flutter - 如何在颤动中创建具有响应选项的聊天机器人?
解决方案
编辑:使用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):机器人:嗨!你好吗?
我/颤振(5917):建议:[回复 1,回复 2]
我/颤振(5917):用户:回复1
I/flutter (5917):Bot:对不起,那是什么?
我/颤振(5917):建议:[]
我在包存储库中询问了这个问题,看看是否有另一种方法可以做到这一点,您可以在这里关注线程:如何在 v2 中获取建议?.
推荐阅读
- flutter - 参数类型“TextDirection”不能分配给参数类型“TextDirection?”
- android - recyclerview 中的视频缩略图
- git - 如何跟踪未跟踪的文件 Git
- amazon-sns - AWS SNS 重试说明
- cassandra - 为什么没有在幸存的 Cassandra 节点上生成提示?
- ios - 如何在 Swift 中创建从开始时间到结束时间的本地通知?
- android - Android Studio 不显示对 lambda 表达式的建议
- python - 如何处理模型之间复杂的循环关系?
- json - 当响应是随机顺序的 JSON 对象数组时,如何在 KarateAPI 中验证响应对象
- python - 如何修复 rm.list_resources() 在窗口 10 中找不到任何 USB 仪器问题