Watson Assistant программирует на Heroku webhook не работает - PullRequest
0 голосов
/ 07 мая 2019

Я создал Webhook (https://moviebotdf.herokuapp.com/get-movie-details),, он протестирован с почтальоном и диалоговым потоком и работает нормально.

Я хочу интегрировать его с IBM Watson Assistant с помощью программного вызова, но это ничего не возвращает (т.е. вывод "").

Я проверил поддержку IBM (https://cloud.ibm.com/docs/services/assistant?topic=assistant-dialog-actions&locale=en), а также другие решения как вызов функции, которая может вызвать webhook, но у меня там еще меньше успехов. Как я понял из поддержки, прямой вызов от Assistant к Webhook должно быть возможно (и легче для новичков, как я), поэтому это решение, которое я ищу. Код в помощнике выглядит следующим образом:

{
  "context": {
    "skip_user_input": true,
    "prodname": "$prodname"
  },
  "output": {
     "text": {
        "values": [
             "$dataToSend"
        ],
     "selection_policy": "sequential"
    }
  },
  "actions": [
     {
       "name": "https://moviebotdf.herokuapp.com/get-movie-details",
       "type": "client",
       "parameters": {
           "prodname": "$prodname"
       },
      "result_variable": "context.dataToSend"
     }
  ]
 }

Таким образом, «prodname» захватывается Watson Assistant на предыдущем узле (я проверял это, и он работает правильно) и отправляется в Webhook. Переменная, используемая в Webhook, также называется «prodname». Ожидаемый вывод от Webhook хранится в переменной «dataToSend», но, как уже было сказано выше, ответ в Watson «», а «$ dataToSend» равен «».

Я также попытался с «result_variable»: «dataToSend» и «result_variable»: «$ dataToSend» без успеха, так что я предполагаю, что webhook не вызывается ...

Я новичок в теме, поэтому, пожалуйста, не стесняйтесь исправлять любые проблемы в моем сообщении.

Заранее спасибо в любом случае!

Адрия

1 Ответ

0 голосов
/ 07 мая 2019

IBM Watson Assistant перечисляет три различных варианта выполнения программного вызова из диалогового узла:

  1. клиент : ваше приложение отвечает за призыв к действию
  2. сервер или cloud_function : действие IBM Cloud Functions вызывается из Watson Assistant
  3. web_action : веб-действие действия IBM Cloud Functions вызывается из Watson Assistant

Если вы размещаете свой веб-крючок в IBM Cloud Functions, то Watson Assistant может напрямую вызвать его. С вашим текущим хостингом и клиентом ваше приложение отвечает. В этом случае ваше приложение должно проверить, что контекст включает информацию о клиентском действии, извлечь эти связанные метаданные, вызвать webhook и отправить данные обратно в Watson Assistant.

Я написал пример такого действия клиента для моего инструмента для разговора Уотсона . Смотрите этот репо для инструкций.

...