Основы работы с веб-перехватчиком DialogFlow CX

Я хочу дать своему чат-боту некоторые вычислительные возможности, но у меня вообще нет опыта работы с веб-перехватчиками. К сожалению, документации по этой теме для DialogFlow CX практически нет (за исключением некоторого общего описания того, что такое веб-перехватчики).

Кто-нибудь знает конкретный учебник, показывающий, как это сделать? Или кто-нибудь может указать мне правильное направление?

Моя отправная точка: у меня есть бот DialogFlow CX с парой параметров сеанса, которые я хочу использовать для некоторых вычислений, и затем результат вычислений должен быть включен в текстовое сообщение бота.

Какие шаги мне нужно сделать сейчас? Есть ли у кого-нибудь конкретный образец, вкл. образец кода, который я мог бы использовать повторно? (в основном я просто знаю, что мне нужно настроить ресурс веб-перехватчика в DialogFlow CX, и что самый простой способ для такого веб-перехватчика, вероятно, использовать облачные функции (чего я никогда раньше не делал))

Большое спасибо!!!


person Felix    schedule 30.06.2021    source источник


Ответы (1)


Обратите внимание, что простые вычисления, такие как сложение и вычитание, могут выполняться в Dialogflow CX без веб-перехватчика с помощью Системные функции.

Для более сложных вычислений, вот общие шаги, которые вы можете выполнить для настройки и использования веб-перехватчика для Dialogflow CX:

  1. Создайте веб-службу на предпочитаемом вами сайте хостинга (например, облачные функции) и обратитесь к Требования к службе Webhook и аутентификация.

  2. После настройки службы веб-перехватчика вы можете добавить его к своему агенту как ресурс веб-перехватчика через консоль Dialogflow CX или API.

  3. После создания ресурса веб-перехватчика для вашего агента вы можете добавить его в любой раздел, который поддерживает использование веб-перехватчика (например, Выполнение, Маршруты, обработчики событий и т. д.).

  4. Когда агент вызывает веб-перехватчик, он отправляет запрос веб-перехватчика json. См. справочник по WebhookRequest подробности в документации.

  5. Вы можете получить параметры сеанса в разделе webhookRequest. sessionInfo .parameters тело json:

    {
      "sessionInfo" : {
        "session":<session string>,
        "parameters": {
           "param1": {
               "value": "sample1"
           }
       }
    
    }
    

    Вот пример кода веб-перехватчика, в котором Node.js извлекает значение параметра param1:

    let yourParameter = request.body.sessionInfo.parameters.param1;

  6. Затем ваша служба веб-перехватчика должна вернуть действительный формат ответа веб-перехватчика < / а> json. См. справочник по WebhookResponse подробности в документации. Вот пример кода с использованием Node.js о том, как отправить текстовый ответ и передать параметр сеанса из ответа веб-перехватчика:

    let jsonResponse = {
       fulfillment_response: {
         messages: [
           {
             text: {
               text: ["This is a sample response."]
             }
           }
         ]
       },
       sessionInfo: {
         parameters: {
              "sample-parameter": {
                  value: "sample1"
              }
         }
       }
     };
    
     response.json(jsonResponse);
    

Обратите внимание, что точный код для получения, обработки и отправки данных json будет зависеть от используемого вами языка программирования.

Вы можете проверить примеры веб-перехватчиков JavaScript для вычисления значений в этом сообщении Stackoverflow.

person Mark Jonathan    schedule 02.07.2021
comment
Большое спасибо за прекрасные объяснения, Марк. Я только что поближе познакомился с системными функциями, которые DialogFlow предлагает без использования веб-перехватчика. Правильно ли я понимаю, что в качестве арифмедических функций предлагаются только ДОБАВИТЬ и ВЫЧИТАТЬ, но не НАМНОЖИТЕЛЬНО или РАЗДЕЛИТЬ? С трудом могу поверить, что MULTIPLY и DIVIDE не будут покрыты?!?! - person Felix; 03.07.2021
comment
да. В настоящее время функции системы Dialogflow CX не поддерживают функции умножения и деления. Следите за примечаниями к выпуску, если Dialogflow CX будет поддерживать эти функции в будущее. - person Mark Jonathan; 06.07.2021
comment
Хорошо, спасибо за информацию. Я думаю, что * и / отчаянно нужны. Позволяет не нуждаться в веб-перехватчиках для многих основных случаев использования. - person Felix; 06.07.2021