커스텀 이벤트

커스텀 이벤트는 텍스트 또는 음성을 통해 손쉽게 캡처할 수 없는 일부 통신을 나타내기 위해 만드는 이벤트입니다. 커스텀 이벤트는 사용자가 버튼을 클릭하거나 승인을 제공했음을 나타내거나 특정 시간이 경과했음을 나타낼 수 있습니다. 이러한 이벤트는 Dialogflow fulfillment 또는 감지 인텐트 API를 통해 트리거될 수 있습니다. 이러한 이벤트는 Dialogflow 에이전트 또는 fulfillment에서 처리될 수 있습니다.

인텐트의 이벤트 이름 정의

Dialogflow 콘솔에서 또는 API Intents 유형을 사용하여 인텐트에 이벤트 이름을 정의할 수 있습니다.

인텐트에서 이벤트 섹션을 찾아 텍스트 필드에 이벤트 이름을 입력합니다.

API를 통해 이벤트를 추가하려면 아래 HTTP 요청과 같이 Intents 유형의 events 필드에 문자열을 추가합니다.

PATCH Authorization: Bearer <AccessToken>
https://dialogflow.googleapis.com/v2/projects/<ProjectID>/agent/intents/<IntentID>
{
  "events": [
    "event-name-1",
    "event-name-2"
    ...
  ]
  ...
}

감지 인텐트 API를 통해 이벤트 호출

이벤트 이름으로 특정 인텐트를 트리거하려면 이벤트 이름에 해당하는 이벤트 매개변수 값이 포함된 감지 인텐트 API 요청을 전송합니다. 쿼리 요청을 이벤트 매개변수와 함께 전송하면 Dialogflow는 이벤트 이름과 같은 이름 및 컨텍스트 lifespan: 0으로 컨텍스트를 만듭니다. 이 수명 값은 컨텍스트가 현재 요청 동안에만 활성임을 의미합니다.

이 컨텍스트를 사용하여 감지 인텐트 요청에서 인텐트의 작업 및 매개변수 섹션에 정의된 매개변수로 매개변수 값을 전달하고, 트리거된 인텐트의 응답 섹션에서 이러한 매개변수 값을 참조할 수도 있습니다.

  • 매개변수 테이블 또는 응답에서 이벤트 매개변수를 참조하려면 #event-name.parameter-name. 형식을 사용합니다.
POST Authorization: Bearer <AccessToken>
https://dialogflow.googleapis.com/v2/projects/<ProjectID>/agent/sessions/<SessionID>:detectIntent
{
        "queryInput": {
                "event": {
                        "name": "event-name",
                        "parameters": {
                                "parameter-name-1": "parameter-value-1",
                                "parameter-name-2": "parameter-value-2",
                                ...
                        },
                        "languageCode": "en-US"
                }
        }
}

자세한 내용은 Sessions 유형의 detectIntent 메서드를 참조하세요.

웹훅에서 이벤트 호출

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

에이전트를 만들 때 이벤트가 트리거할 인텐트의 이벤트 매개변수를 참조할 수 있습니다.

애플리케이션이 fulfillment WebhookRequest를 수신하면 다음과 유사한 WebhookResponse를 보내 후속 이벤트를 트리거할 수 있습니다.

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

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는 체인이 끝날 때까지 최종 사용자에게 응답하지 않습니다. 이런 식으로 인텐트를 연결하는 경우 각 웹훅 응답이 제한 시간 이내에 전송되어야 합니다.

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Dialogflow 문서
도움이 필요하시나요? 지원 페이지를 방문하세요.