2017-10-17 163 views
1

我正在使用Watson对话项目。 我输入以下沃森项目,我与我的谈话配置它: https://github.com/watson-developer-cloud/car-dashboard如何使用Watson对话对话框创建表单生成器

我想聊天机器人,以显示给用户,用户有权利选择7个选项的复选框。每个点击一个选项链接到对话框的一部分。 此刻,我已插入这个文本对话框节点

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

而且我有以下的情况

image

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

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

回答

0

1)使用input type checkbox,你会有复选框。

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

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)。这也意味着你可以在其他地方控制样式,而不必改变会话响应。它也减少了噪音,使维护/阅读更容易。