我目前正在从事一个涉及创建“聊天机器人”的项目。它不会是任何一种“ 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中的东西。我想对设计进行一些控制,并且希望避免依赖于外部解决方案,但是我仍然想知道是否有什么可以满足我的需求。
答案 0 :(得分:-1)
我将看一下Watson Assistant,并看一下可以实现的responses种类。
在某些情况下可能太多了,但是拥有一个处理某些对话框节点遍历的框架非常方便。