以汽车仪表板为例,我将初始的@genre 节点更改为@genre:classical。我还在上下文中添加了一个列表
"choices":["Beethoven","Mahler 9","Brahms 3rd"]
Watson 的响应是"I have 3 selections"
。下一个节点的条件是$choices.contains(input.text)
。“找到匹配”响应仅用于测试。它看起来像这样:
当我在 api 工具中测试它并键入“Beethoven”时,“找到匹配”和“很棒的选择!...”都会出现。其他两个选项也一样,但前提是我输入了准确的选项,例如“Mahler 9”。键入“Mahler”或“mahler”不匹配。我通读了 SpEL 文档,但看不到在单行条件下解析列表以查找部分匹配项的方法。
所以我的问题是,是否存在匹配部分用户输入的条件表达式,例如“Mahler”?我将使用 Java SDK 对应用服务器进行编码,所以我想知道是否可以仅为此序列添加一个临时 @entity 而不是使用上下文列表,然后在对话完成时将其删除?或者有没有办法在 MessageRequest 中构造一个更复杂的条件并且 Watson 会识别它吗?或者这不是解决这个问题的正确方法?非常感谢任何指针、示例或文档。