Как вызвать сторонний API из Watson Assistant? - PullRequest
0 голосов
/ 07 августа 2020

Создание чат-бота с помощью IBM Watson Assistant, и мне нужно определить, что я пытаюсь отправить почтовый индекс в сторонний API, который вернет город и штат, чтобы я знал, где находится клиент, чтобы я мог (а) знать, какие услуги доступны, и (б) лучше понимать, как вести разговор оттуда. Но я не понимаю, как это сделать.

Я могу сделать это из Python, но попытка закодировать это в редакторе JSON не работает.

1 Ответ

0 голосов
/ 09 августа 2020

Webhooks используются для этого изнутри навыка Dialog в Ассистенте.

Документация по веб-перехватчикам IBM Watson Assistant

* 1006 Помощник отправит POST на URL-адрес с телом JSON, содержащим параметры, которые вы укажете как пары ключ-значение. Например, если в диалоговом узле контекстная переменная $ zipcode равна '99501', и вы указываете параметры "ключ" = zipcode и "значение" = "$zipcode".

, тогда тело сообщения HTTP будет

{ "zipcode" : "99501" }

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

Вы также можете в диалоговом узле, который вызывает ответ помощника, вернуть ответ сообщение, которое содержит некоторую часть ответа веб-перехватчика. Например, в редакторе диалогового узла «Если помощник распознает» $webhook_result_zipcode «Ответьте с помощью» The code is "$webhook_result_zipcode.response.result.sent" Это сообщит пользователю код, который возвращается глубоко в ответе веб-перехватчика в response.result.sent в теле ответа.

Вы также можете щелкнуть шестеренку рядом с ответом и в диалоговом окне щелкнуть… рядом с «Помощник отвечает» и открыть редактор контекста. Откроется редактор контекста (в верхней части диалогового окна), который позволяет установить другую переменную контекста из части ответа веб-перехватчика. Например, в разделе «Затем установить контекст» для «Переменной» установите zipcode, а для «Значение» установите "$webhook_result_zipcode.response.result.sent.zipcode". Это извлечет значение почтового индекса из глубины ответа веб-перехватчика и поместит его в контекстную переменную zipcode.

Конечно, тогда вы должны найти службу определения местоположения почтового индекса, которая принимает сообщение HTTP и ищет код в тело.

...