如何使用Watson Conversation Dialog创建表单构建器

时间:2017-10-17 09:41:07

标签: javascript jquery ibm-cloud watson-conversation watson

我正在开展一个Watson Conversation项目。 我导入了以下Watson项目,我正在使用我的对话进行配置: https://github.com/watson-developer-cloud/car-dashboard

我希望聊天机器人向用户显示一个包含用户必须选择的7个选项的复选框。一个选项中的每次单击都链接到对话框的一部分。 目前,我已将此文本插入对话节点

"Select:<br>
<select id='select' on select: 'select()'>
<option value='01' selected> Product 1 </option>
<option value='02'>Product 2</option>
</select>"	

我有以下情况

image

试着按照这篇文章(How use Select Option in Watson Conversation)编写来复制index.js文件中的代码,该文件在我的项目中不存在。

问题是两个: 1)你怎么能有一个复选框而不是一个下拉菜单? 2)在项目的github页面上可以看到的层次结构文件中,输入建议的代码?

2 个答案:

答案 0 :(得分:1)

正如@Arlemi指出的那样,您只能使用链接上提到的复选框代码。

然而!您尝试做的事情的问题是,如果您尝试渲染其他系统,它将成为维护的噩梦。

对话代码也有10MB的限制,因此添加无关代码会降低该限制。

最好将代码分开,让应用层执行代码创建。

例如,使用W3学校链接代码:

<input type="checkbox" name="vehicle1" value="Bike"> I have a bike<br>
<input type="checkbox" name="vehicle2" value="Car"> I have a car<br>
<input type="checkbox" name="vehicle3" value="Boat" checked> I have a boat<br>

您将拥有如下的对话节点。

{  "context": { 
  "vehicle_options": {
    "type": "checkbox",
      "options": [
        { "name": "vehicle1", "value": "Bike", "text": "I have a bike" },
        { "name": "vehicle2", "value": "Car", "text": "I have a car" },
        { "name": "vehicle3", "value": "Boat", "text": "I have a boat", "checked": true },
      ] 
  }
    },
  "output": {
      "text": {
        "values": [ "Select your Vehicles: <! vehicle_options !>" ]
        }
    }
}

然后,您的应用程序层会查找<! !>并使用此块中的值来确定要读取的上下文对象。它将使用type值来确定渲染方式,并使用options作为渲染的一部分。

这意味着您的应用程序层可以创建HTML或任何其他语言(例如Swift)。它还意味着您可以在其他地方控制样式,而不必更改对话响应。它还可以降低噪音,使维护/阅读更容易。

答案 1 :(得分:0)

1)使用input type checkbox,您将拥有复选框。

2)您应该在对话框节点中输入该代码,而不是在页面中输入。该页面将在浏览器中将该服务的响应呈现为HTML。