Как реагировать с помощью динамических параметров в IBM Watson Assistant?

#ibm-cloud #ibm-watson #watson-assistant

#ibm-cloud #ibm-watson #watson-помощник

Вопрос:

Мой webhook возвращает массив элементов. Мне нужно, чтобы IBM Watson Assistant отвечал пользователям этими элементами в качестве опций.

Как я могу этого добиться?

Комментарии:

1. Количество возвращаемых параметров фиксировано или изменяется?

Ответ №1:

Структура JSON для ответа IBM Watson Assistant с параметрами документирована. Вы уже упоминали, что ваш webhook вернул массив элементов. Он должен соответствовать этой структуре.

Теперь в вашем диалоговом окне вам нужно будет добавить этот массив параметров myOptionsArray в свой вывод. Предполагая, что данные массива хранятся в переменной myvar, используйте что-то вроде этого:

 <? output.generic.addAll($myvar.myOptionsArray) ?>
  

Общий относится к общему формату вывода JSON — в отличие от формата интеграции JSON. Приведенное выше выражение может быть помещено в ответ или в какое-либо промежуточное назначение. Возможно, потребуется немного поэкспериментировать, но это работает…

Комментарии:

1. Спасибо @data_henrik, это было очень полезно.

2. Также смотрите это сообщение в блоге: medium.com/ibm-watson /…

Ответ №2:

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

введите описание изображения здесь

И так же, как предложил @data_henrik, я сохранил этот результат в контекстной переменной с именем myOptions и использовал ее как :

 <? output.generic.addAll($myOptions) ?>
  

Комментарии:

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