如何创建基于按钮的聊天机器人

时间:2019-01-18 15:55:47

标签: ionic-framework chatbot

我目前正在从事一个涉及创建“聊天机器人”的项目。它不会是任何一种“ AI”,深度学习或类似的东西。这将是一个“基于菜单/按钮的聊天机器人”(正如他们在网络上所说的那样)。我不知道如何解决这种功能。它将在应用程序内部,我将使用Ionic,“数据库”将作为JSON存储在Firebase上(不过,如果更容易,我可以使用其他方法)。

与聊天机器人通信时,用户将只能使用封闭式答案,主要是1,2,3或4个响应。每个回答都会引出下一个问题,依此类推。

然后,我们必须创建具有所有不同可能性的结构。

比方说,聊天机器人首先询问“您想在晚餐时吃什么?”,用户有2个选择:面食,比萨饼。然后,根据用户的答案,然后显示下一个问题。因此,用户的答案范围非常有限,但我们需要照顾到每条路径。

到目前为止,我在想的是具有这样的块的JSON配置:

{
  address: 0001,
  type: 1, // The type will probably help to identify the kind of block
  question: 'What do you want to eat for dinner?',
  responses : [{
       title: "pasta",
       link:  0002,
      }, {
       title: "pizza",
       link:  0003,
   }
 },
 {
  address: 0002,
  type: 1,
  question: 'Great you want to eat some pasta, what else?',
  responses : [{
       title: "Cheese",
       link:  0004,
      }, {
       title: "Cake",
       link:  0005,
   }
 }, etc.

因此,当用户单击“意大利面”时,我应该显示下一个块(地址为0002的那个)。我可以使用不同的阻止类型,一种将显示文本问题,另一种将仅在聊天中显示视频或任何其他类型。 (因此,使用视频网址,图像等内容可能会更加复杂。)

我正在考虑创建一个非常基本的工具,该工具将有助于创建所有不同的块,然后这些块将生成大量的JSON配置。

但这有两个缺点:    ->我需要为每个交互定义一个块。 (如果聊天机器人变大,这将导致数百个块)     ->假设我想提供一些更具个性化的内容,并且需要使用存储在聊天机器人外部的一些数据(例如,在用户个人资料上)。 假设用户指定了他是否对奶酪过敏。

比萨饼->奶酪(他过敏)->转到“您应该避免吃奶酪” 比萨->奶酪(他不过敏)->转至“太好了,您要甜点吗?”

但是在我的模型中,奶酪总是指向地址0004,所以这行不通。我需要根据一些变量对下一步有一些“规则”,但这似乎很棘手...

我愿意使用任何种类的API,我见过很多东西,但没有可以轻松集成到Ionic中的东西。我想对设计进行一些控制,并且希望避免依赖于外部解决方案,但是我仍然想知道是否有什么可以满足我的需求。

1 个答案:

答案 0 :(得分:-1)

我将看一下Watson Assistant,并看一下可以实现的responses种类。

enter image description here 上图是添加选项响应的样子,类似于您发布的示例JSON。

在某些情况下可能太多了,但是拥有一个处理某些对话框节点遍历的框架非常方便。