IBM Watson Assistant: возникают проблемы с доступом к определенным объектам из диалогового окна JSON - PullRequest
0 голосов
/ 07 июня 2018

Я создал сущность, используя графический интерфейс с именем @ClientStates, и добавил список состояний, которые поддерживает наш клиент.

Мне нужно проверить, находится ли введенное пользователем состояние в @ClientStates, и если это так, распечатать некоторые из них.информация.

Я знаю, что это можно сделать, создав узел диалога, который проверяет совпадение, но можно ли это сделать с помощью JSON внутри узла?Например:

{
  "output": {
    "text": {
      "values": [
         "<? @ClientStates.contains($State)? 'Yes' : 'No ?>"
       ],
      "selection_policy": "sequential"
    }
  }
}

Кажется, что «Да» должно быть напечатано, если пользовательский ввод сохранен в контекстной переменной $ State, является одним из состояний в @ClientStates, и «Нет» должно быть напечатано, если этоне.Тем не менее, единственный вывод - «Нет» для любого ввода.

Далее, я ожидаю, что следующий код напечатает список состояний в @ClientStates, но он не дает никакого вывода вообще.

{
  "output": {
    "text": {
      "values": [
         "<? @ClientStates ?>"
       ],
      "selection_policy": "sequential"
    }
  }
}

Почему я не могу получить доступ к предопределенной сущности @ClientStates из диалогового окна JSON?

1 Ответ

0 голосов
/ 10 июня 2018

Вы можете получить доступ только к объектам в диалоге, только если это часть ввода.И, во-вторых, нет необходимости использовать «содержит» для проверки, содержит ли вход эту сущность или нет.

use:

<? @ClientStates ? 'Yes' : 'No ?>
...