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

Ionic framework 如何创建基于按钮的聊天机器人,ionic-framework,chatbot,Ionic Framework,Chatbot,我目前正在从事一个项目,涉及创建一个“聊天机器人”。它不会是任何类型的“人工智能”,深度学习或任何类似的幻想。这将是一个“基于菜单/按钮的聊天机器人”(他们在网上这样称呼它)。我不知道如何处理这种功能。它将在一个应用程序中,我将使用Ionic,“数据库”将作为JSON存储在firebase上(不过,如果更简单的话,我愿意使用其他东西) 当与聊天机器人通信时,用户只能使用封闭式应答,主要是1、2、3或4个应答。每个回答将引出下一个问题,依此类推 然后,我们必须创建一个包含所有不同可能性的结构 假设

我目前正在从事一个项目,涉及创建一个“聊天机器人”。它不会是任何类型的“人工智能”,深度学习或任何类似的幻想。这将是一个“基于菜单/按钮的聊天机器人”(他们在网上这样称呼它)。我不知道如何处理这种功能。它将在一个应用程序中,我将使用Ionic,“数据库”将作为JSON存储在firebase上(不过,如果更简单的话,我愿意使用其他东西)

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

然后,我们必须创建一个包含所有不同可能性的结构

假设聊天机器人首先问“晚餐想吃什么?”用户有两个选择:意大利面、比萨饼。然后,根据用户的anwser,我们显示下一个问题。因此,用户的回答范围非常有限,但我们需要对每条路径进行跟踪

到目前为止,我的想法是有一个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)。我可以有不同的块类型,可以显示文本问题,也可以只在聊天中显示视频或其他类型的块。(因此,视频url、图像等的块可能更复杂。)

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

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

比萨饼->奶酪(他过敏)->去“你应该避免奶酪” 比萨饼->奶酪(他不过敏)->去“太好了,你想要什么甜点?”

但在我的模型中,cheese总是指向地址0004,所以这是行不通的。我需要块有一些“规则”关于下一步去哪里取决于一些变量,但这似乎是棘手的


我对使用任何类型的API都持开放态度,我见过很多API,但我不能轻松地将它们集成到Ionic中。我想对设计有一些控制,我想避免依赖于外部解决方案,但我仍然好奇是否有什么可以满足我的需要

我会看看Watson Assistant,看看您可以实现的不同类型

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


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

我会看看Watson Assistant,看看您可以实现的不同类型

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


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

您将如何将此json加载到您的应用程序中?作为远程文件?或者您将动态生成它?如果您想个性化交互,我想您应该生成JSON,这样每个用户都可以根据自己的数据进行聊天。(或者为每个人生成相同的JSON,并在JSON中设置条件)。示例:
响应:[{title:“Cheese”,条件:[{cheesellergy:false}],链接:0004}]
你将如何将此json加载到你的应用程序中?作为一个远程文件?或者动态生成它?如果你想个性化交互,我想你应该生成json,这样每个用户都可以根据自己的数据进行聊天。(或者为每个人生成相同的json,并在json中设置条件).Example:
响应:[{title:“Cheese”,条件:[{cheesellergy:false}],链接:0004}]