Как реализовать действие типа «клиент» в IBM Watson Assistant client?

#ibm-watson

#ibm-watson

Вопрос:

Я работаю над сервисом IBM Watson Assistant для создания чат-бота AI, и в настоящее время у меня есть пользовательский интерфейс на стороне клиента для этого, поэтому, согласно документации IBM, они поддерживают различные действия для запуска внешней бизнес-логики с использованием функций. Я предполагаю, что действие типа «клиент» может помочь мне запустить какую-либо функцию javascript, но я не вижу ни одного рабочего примера в Google. Поэтому, пожалуйста, помогите мне реализовать действие типа «клиент» в моем клиенте html / javascript.

Ответ №1:

Проверьте вопрос в этой публикации — https://developer.ibm.com/answers/questions/477020/help-with-custom-actions-for-ibm-watson-assistant/

Действия на стороне клиента состоят из двух частей. Первое находится в диалоговом окне, которое сигнализирует о том, что требуется действие, и куда следует поместить результат действия. Действия на стороне клиента требуют наличия уровня оркестровки. Это означает, что вы контролируете как поток диалога, так и реагирующий уровень оркестровки. Вам решать, как вы заставляете их координировать. Вы не обязаны следовать какому-либо шаблону. Самый простой способ — использовать контекст. Диалоговое окно устанавливает контекстную переменную, например. «PleaseDoSomething», приложение видит это и что-то делает.

Документированная конструкция действия клиента — это спецификация, которая придает структуру этому процессу; Позволяет другим уровням оркестровки понимать действие; Позволяет относительно легко переключаться на облачные функции.

Если использовать конструкцию клиентского действия.

тогда диалоговое окно json будет выглядеть примерно так:

 {
  "output": {
    "text": {
      "values": [
        "Hang on I need to look that up."
      ],
      "selection_policy": "sequential"
    },
    "actions": [
     {
       "name": "fetchBalance",
       "type": "client",
       "result_variable": "balance"
     }
   ]
  }
}
  

Ваш уровень оркестровки ищет «Действия», запускает «fetchBalance» и помещает результат в контекстное поле «баланс».

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

1. Я понимаю, что fetchBalance — это функция, которая будет определена на уровне клиента, но как она будет выполняться автоматически?

2. Потому что ваш уровень оркестровки выполнит его. В службе помощника или диалоговом окне нет ничего, что автоматически выполняло бы действия клиента.

3. Хорошо, понял, поэтому мне нужно запустить эту функцию. и нужно ли мне следовать какой-либо структуре json для возвращаемого значения этой функции?

4. На самом деле это не зависит от вас, как вы это делаете, но соглашение гласит, что вы возвращаете результат в контексте в качестве значения result_variable . т. Е. в примере в поле контекста balance , которое может быть любого типа, который вы хотите — строка, число, массив, объект …