#websphere #ibm-watson #node-red #watson-assistant
#websphere #ibm-watson #узел-красный #watson-помощник
Вопрос:
Я пытаюсь настроить Watson Assistant для бота Telegram, который я создаю. Правильно знаю, что у меня нет проблем с получением ответов от Watson с помощью watson-assistant-v1 (т. Е. узла помощника), однако я хотел бы использовать watson-assistant-v2 (т. Е. узла помощника V2).
Я не знаю, что я делаю не так. Для ключа API в Node-RED я использую ключ API помощника. Однако, когда я отправляю сообщение боту в debug, я получаю «ошибка типа: не удается прочитать свойство ‘0’ из неопределенного».
Я что-то еще упускаю? Почему возникает эта ошибка
Ответ №1:
В узле Assistant V1 конфигурацией является идентификатор рабочей области.
В узле Assistant V2 конфигурация предназначена для идентификатора помощника.
Для обоих входных данных текст ожидается в msg.payload
, хотя он может быть пустым, чтобы разрешить запуск диалога. Итак, для узла V2 это допустимый поток, который должен работать
[{"id":"83dbc697.d416c8","type":"inject","z":"f551e981.a6bf78","name":"","topic":"","payload":"","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":90,"y":260,"wires":[["d334bd1c.00abb"]]},{"id":"d334bd1c.00abb","type":"watson-assistant-v2","z":"f551e981.a6bf78","name":"","service-endpoint":"https://gateway.watsonplatform.net/assistant/api","assistant_id":"f6f33980-9b6a-4bdf-92dd-e7974a832586","debug":false,"restart":false,"return_context":true,"alternate_intents":false,"multisession":true,"timeout":"","optout-learning":false,"x":410,"y":260,"wires":[["151a548c.d4f44b","6ad0ad7b.b34414"]]},{"id":"151a548c.d4f44b","type":"debug","z":"f551e981.a6bf78","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":650,"y":240,"wires":[]}]
Если вы настраиваете диалоговое окно, вам необходимо настроить контекст. Оба узла могут управлять контекстом для вас, но им нужен идентификатор для контекста. Для узла V2 это делается путем установки msg.params.session_id
произвольного значения, которое имеет смысл для вашего приложения. например.
[{"id":"b30a8bd4.e5f628","type":"inject","z":"f551e981.a6bf78","name":"","topic":"","payload":"Hello","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":90,"y":300,"wires":[["4c5c73b5.eef91c"]]},{"id":"4c5c73b5.eef91c","type":"function","z":"f551e981.a6bf78","name":"","func":"msg.params = {n "session_id" : "ABC"n};nreturn msg;","outputs":1,"noerr":0,"x":310,"y":360,"wires":[["d334bd1c.00abb"]]},{"id":"d334bd1c.00abb","type":"watson-assistant-v2","z":"f551e981.a6bf78","name":"","service-endpoint":"https://gateway.watsonplatform.net/assistant/api","assistant_id":"f6f33980-9b6a-4bdf-92dd-e7974a832586","debug":false,"restart":false,"return_context":true,"alternate_intents":false,"multisession":true,"timeout":"","optout-learning":false,"x":410,"y":260,"wires":[["151a548c.d4f44b","6ad0ad7b.b34414"]]},{"id":"151a548c.d4f44b","type":"debug","z":"f551e981.a6bf78","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":650,"y":240,"wires":[]}]
Затем узел управляет сеансом и контекстом для вас, возобновляя сеанс всякий раз, когда он истекает.