IBM Chatbot Assistant-具有相同值的阵列

时间:2018-10-01 09:24:48

标签: ibm-cloud chatbot ibm-watson watson-conversation

我在Watson的JSON编辑器中有这段代码:

        var firstChart = new Chart(document.getElementById("pie-chart"), {
                        type: 'pie',
                        data: {
                            labels: ["Açık  " + words[0] + "%", "Kapanan  " + words[1] + "%"],
                            datasets: [{
                                label: "Population (millions)",
                                backgroundColor: ["#e74c3c", "#3498db"],
                                data: [words[0], words[1]]
                            }]
                        },
                        options: {
                            showAllTooltips: true,
                            title: {
                                display: true,
                                text: 'Bakiye'
                            },

                        }
                    });

例如,当用户输入为“ 您好,我需要一个阀门,阀门的零件号为1234 ”时,数组的大小最终为 2 ,因为用户在其输入中两次提及单词“ 阀门”。根据数组的大小,正在执行某些节点。例如,如果数组的大小为1,则某些节点将被忽略,因为它们仅在数组的大小为2时才执行。

我希望数组仅存储具有不同值的输入,这基本上是我不希望数组存储相同类型的值,在我的情况下为2个阀。如果可能,请向我展示一种方法。

2 个答案:

答案 0 :(得分:0)

所有这些都可以完成,但是最好的方法取决于整个系统的体系结构。请记住,Watson Assistant是对话服务,而不是数据处理平台...

您可以使用内置方法和SpEL在任一Watson Assistant中直接处理JSON,请参阅以下链接以开始使用:
 -https://console.bluemix.net/docs/services/conversation/expression-language.html#expressions-for-accessing-objects
 -http://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html
 -https://console.bluemix.net/docs/services/conversation/dialog-methods.html#expression-language-methods

那将需要在对话框节点中进行一些编码。没关系。我建议是在驱动对话框的应用程序中处理(无论如何仍需要该应用程序)或编写small server actions来转换数据。

答案 1 :(得分:0)

如果您要查找的是单词,则可以使用上下文实体对此进行训练。

作为示例,我创建了以下意图(以及目录中的一般意图)。

对于每个示例,我都突出显示了我感兴趣的那个“阀门”一词,并将其添加到实体中。

enter image description here

现在,当我对其进行测试时,我得到以下信息。

enter image description here

所有这些都在几分钟之内完成。对于生产级别,您可能需要添加更多示例,或考虑如何注释。