커스텀 이벤트

커스텀 이벤트는 개발자가 정의하는 이벤트입니다. fulfillment 또는 API를 사용하여 이 이벤트를 호출할 수 있습니다. 예를 들어 특정 시간에 이벤트를 호출하는 시간 알림을 대화 중에 설정할 수 있습니다. 이 이벤트는 최종 사용자에게 무언가를 알리는 인텐트를 트리거할 수 있습니다.

API로 이벤트 호출

Sessions 유형 detectIntent 호출의 요청에는 이벤트를 호출하는 데 사용되는 queryInput.event 필드가 있습니다. 이 필드의 유형에는 EventInput이며, 이벤트 이름, 선택적 매개변수, 언어 코드의 필드가 포함됩니다.

인텐트 감지 호출에 이벤트를 제공할 때는 최종 사용자 표현과 같은 다른 데이터를 제공하지 않습니다. 이 호출의 유일한 목적은 이벤트를 호출하고 인텐트를 트리거하는 것입니다.

fulfillment로 이벤트 호출

WebhookResponsefollowupEventInput 필드를 설정하여 fulfillment를 통해 이벤트를 호출할 수 있습니다. 필요한 경우 followupEventInput.parameters 필드를 설정하여 인텐트에 매개변수를 제공할 수 있습니다.

예:

{
      "followupEventInput": {
        "name": "event-name",
        "parameters": {
          "parameter-name-1": "parameter-value-1",
          "parameter-name-2": "parameter-value-2"
        },
        "languageCode": "en-US"
      }
    }
    

WebhookResponsefollowupEventInput 매개변수가 설정된 경우 Dialogflow는 fulfillmentText, fulfillmentMessages, payload 필드를 무시합니다. Dialogflow에서 이벤트가 포함된 웹훅 응답을 받으면 정의된 해당 인텐트를 즉시 트리거합니다.

다음에서는 단계 흐름을 설명합니다.

  1. 최종 사용자가 표현을 입력하거나 말합니다.
  2. Dialogflow는 최종 사용자 표현을 fulfillment에 구성된 Intent-1과 일치시킵니다.
  3. Dialogflow가 서버에 웹훅 요청을 보냅니다.
  4. 서버가 후속 조치 이벤트가 포함된 웹훅 응답으로 응답합니다.
  5. Dialogflow는 사용자에게 Intent-1 일치에 대한 응답을 보내는 대신 이벤트에 구성된 Intent-2를 트리거합니다.
  6. Dialogflow는 최종 사용자가 Intent-2 일치를 시작한 것처럼 일치를 진행하고 Intent-2 구성에서 지정된 대로 필요한 매개변수와 fulfillment를 처리합니다.

웹훅 응답 이벤트를 사용하여 인텐트 일치 항목 연결

웹훅 응답 이벤트를 사용하여 인텐트 일치 항목을 연결할 수 있습니다. 위에서 설명된 흐름에서 Intent-2를 fulfillment에 구성할 수도 있습니다. 서버의 웹훅 응답이 또 다른 이벤트를 제공할 경우 Dialogflow는 최종 사용자에게 Intent-2에 대한 응답을 보내지 않고 이벤트에 구성된 Intent-3 일치를 계속 진행합니다.

Dialogflow는 연결이 종료될 때까지 최종 사용자에게 응답하지 않습니다. 이 방법으로 인텐트를 연결하는 경우 각 웹훅 응답은 제한 시간 이내에 전송되어야 합니다.