URL-адрес запроса в Watson Assistant

Я работаю с Watson Assistant (V2). Я настраиваю сам WA через интерфейсный интерфейс IBM, который они предлагают, и использую NodeJS для его развертывания в их облаке.

Я хочу сделать следующее:

  1. Пользователь посещает сайт www.mysite.com/?productID=123, который содержит чат-бота.

  2. Бот при запуске запрашивает URL-адрес и распознает productID.

  3. Распознанный productID помещается в мою сущность @productID, поэтому я могу использовать его как контекстную переменную $ productID (или @ productID.literal).

Пока мне не удалось найти способ поместить productID в @entity. Я получаю productID, вызывая функцию onload с помощью регулярного выражения, и могу отображать productID в чате. Однако я не могу понять, как как-то сохранить это в @entity.

Я знаком с html / css / json / js, но еще не знаком с API, который предлагает Watson.

Любые указатели приветствуются. Спасибо!


person user3287470    schedule 18.10.2019    source источник


Ответы (1)


Когда вы используете API V2 для IBM Watson Assistant, вы используете сообщение, чтобы отправить данные, введенные пользователем в движок чат-бота. В теле запроса есть элемент контекста с разделом, связанным с системой и навыками. Вы можете расширить его и установить связанные с приложением переменные контекста. Используйте его, чтобы передать свой productID. Нет необходимости пытаться установить его как объект.

person data_henrik    schedule 18.10.2019
comment
Спасибо. Думаю, теперь я лучше понимаю процесс, но все еще не могу получить доступ к этой переменной. Я обновил тело запроса, включив в него «имя пользователя»: «Piet», а затем попытался отобразить имя пользователя «Piet», поместив $ username в текстовое поле диалогового окна. Что-то мне здесь не хватает? Вы можете увидеть, что я сделал в строке 70: pastebin.com/bnij3KVZ (пробовал и $ username, и $ (username ) как я вижу, оба используются в примерах) - person user3287470; 18.10.2019
comment
Я решил проблему, и ваше решение заработало. Это была глупая ошибка с моей стороны. Я редактировал контекст в app.js, предполагая, что обновления моего локального хоста будет достаточно для повторного вызова сценария (как и в большинстве других файлов .js, используемых в nodejs Watson). Однако app.js, очевидно, вызывается при запуске службы и только один раз, поэтому мне пришлось перезапустить всю службу. Спасибо за вашу помощь! - person user3287470; 18.10.2019