首页 > 解决方案 > 如何在颤动中创建具有响应选项的聊天机器人?

问题描述

见下图: 例子

如何在 Flutter 中使用 DialogFlow 或任何其他聊天机器人框架实现自动响应。

我只想知道在红色区域突出显示所需结果的方法。

标签: flutterdartdialogflow-es

解决方案


编辑:使用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 中获取建议?.


推荐阅读