Выполнение DialogFlow при подключении к API REST - PullRequest
0 голосов
/ 31 октября 2018

Я хочу использовать выполнение Dialogflow для подключения к внешнему веб-сервису / API. Один из способов сделать это - использовать пользовательскую функцию webhook (не встроенную веб-ловушку). Однако при использовании пользовательского веб-хука кажется, что вы ограничены созданием только одного, хотя у вас может быть много намерений, и вы можете вызвать много конечных точек. Есть ли способ ссылки на дополнительные пользовательские веб-хуки (конечные точки API)?

Если вы можете настроить только один веб-хук, то ваша веб-служба всегда будет получать запрос Post от Dialogflow и затем должна будет интерпретировать тело запроса, т.е. на основе параметра intent. Просто интересно, есть ли лучший способ работы с веб-сервисами REST с помощью Dialogflow.

Другой потенциальный вариант - использовать встроенный веб-хук, а затем поместить туда логику для вызова определенных конечных точек, однако это может стать немного запутанным.

1 Ответ

0 голосов
/ 01 ноября 2018

Вы можете настроить только одно выполнение, которое будет обрабатывать все включенные вами материалы. Это может быть либо встроенный в редакторе выполнения, либо указанный вами URL-адрес веб-крючка.

Ожидается, что этот webhook делегирует фактическую обработку какому-либо обработчику намерений. В библиотеке выполнения Dialogflow node.js есть способ зарегистрировать, какой обработчик вы хотите для каждого имени Intent, или вы можете включить имя Intent, имя Action или любое другое поле, предоставленное вам в вашем коде.

В библиотеке вы обычно выполняете вызовы REST из соответствующего обработчика намерений, который примет предоставленные параметры и обработает вызов. Если вы используете Javascript, убедитесь, что вы обрабатываете вызов асинхронно и верните Promise.

Я рекомендую webhook, потому что он дает вам больше контроля, чем встроенный редактор. Встроенный редактор - это просто веб-крючок под обложками с использованием облачных функций Firebase. Даже если вы поместите его в облачную функцию, вы сможете лучше управлять им.

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

...