我想知道如何在我的对话框中集成一些编码(python或javascript),以避免非常有限的bluemix接口,例如for循环或文本挖掘。
EX:我正在创建一个披萨聊天机器人,我需要能够处理这种请求:
I would like 2 margarita whose one with extra cheese and the other with pepperoni and a regina, with 3 diet cokes and two beers
用bluemix完成它是不可能的。
如果有人有解决方案,我将非常感激。 感谢
答案 0 :(得分:0)
首先要理解的是Conversation有好的和坏的用例。
如果您的用户可以输入结构化数据,那么最好使用表单。在对话窗口(如Watson Virtual Agent)或您网站/应用中的表单上。
所以你的例子看起来不是一个好的用例。
那说......
使用您的示例,如果您的主要项目是实体,并且您启用了@sys-number
系统实体,则可能。然后,您可以检查entities
阵列以查看彼此之间的距离。
示例强>
创建以下实体。
@PizzaType
@PizzaTopping
@Drinks
当我提出您的问题时,entities
对象会返回以下内容:
[
{
"entity": "Drinks",
"location": [
104,
114
],
"value": "diet coke",
"confidence": 1
},
{
"entity": "PizzaType",
"location": [
72,
81
],
"value": "Pepperoni",
"confidence": 1
},
{
"entity": "Drinks",
"location": [
123,
128
],
"value": "beer",
"confidence": 1
},
{
"entity": "PizzaType",
"location": [
88,
94
],
"value": "Regina",
"confidence": 1
},
{
"entity": "PizzaTopping",
"location": [
46,
52
],
"value": "cheese",
"confidence": 1
},
{
"entity": "PizzaType",
"location": [
15,
24
],
"value": "Margarita",
"confidence": 1
},
{
"entity": "sys-number",
"location": [
13,
14
],
"value": "2",
"confidence": 1,
"metadata": {
"numeric_value": 2
}
},
{
"entity": "sys-number",
"location": [
31,
34
],
"value": "1",
"confidence": 1,
"metadata": {
"numeric_value": 1
}
},
{
"entity": "sys-number",
"location": [
101,
102
],
"value": "3",
"confidence": 1,
"metadata": {
"numeric_value": 3
}
},
{
"entity": "sys-number",
"location": [
119,
122
],
"value": "2",
"confidence": 1,
"metadata": {
"numeric_value": 2
}
}
]
摘要是:
你可以直接看到那里有一些问题。如果用户没有提及号码,您必须考虑到这一点。此问题也会破坏它(除非你满足它)。
I would like margarita pizzas (two).
但重要的是建立具有代表性问题的系统。您的示例问题可能永远不会被最终用户询问,或者您甚至可以调整对话以防止此类输入。