【问题标题】:How to create a button based chatbot如何创建基于按钮的聊天机器人
【发布时间】:2019-01-19 01:52:53
【问题描述】:

我目前正在从事一个涉及创建“聊天机器人”的项目。它不会是任何一种“人工智能”、深度学习或类似的花哨的东西。这将是一个“基于菜单/按钮的聊天机器人”(正如他们在网络上所说的那样)。我不知道如何处理这种功能。它将在应用程序中,我将使用 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.

所以当用户点击“pasta”时,我应该显示下一个块(地址为 0002 的块)。我可以有不同的块类型,一种会显示文本问题,另一些只会在聊天中显示视频或任何其他类型。 (因此,视频 url、图像等块可能更复杂。)

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

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

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

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

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

【问题讨论】:

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

标签: ionic-framework chatbot


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-05
    • 1970-01-01
    相关资源
    最近更新 更多