#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
, которое может быть любого типа, который вы хотите — строка, число, массив, объект …