입력 및 출력 컨텍스트

입력 및 출력 컨텍스트는 인텐트에 적용됩니다. 이들은 함께 작동하여 대화 흐름을 제어합니다.

  • 출력 컨텍스트활성 컨텍스트를 제어합니다. 인텐트가 일치하면 이 인텐트에 구성된 출력 컨텍스트가 활성화됩니다.
  • 입력 컨텍스트는 인텐트 일치를 제어합니다. 컨텍스트가 활성화된 경우 Dialogflow에서는 현재 활성 컨텍스트의 하위 집합인 입력 컨텍스트로 구성된 인텐트가 일치될 가능성이 더 높습니다.

컨텍스트를 사용하면 다음을 수행할 수 있습니다.

  • 인텐트 일치 순서를 제어합니다.
  • 동일한 학습 문구를 사용하여 컨텍스트별 인텐트를 만듭니다.

예를 들어 다음 인텐트를 가정해 보겠습니다.

인텐트 이름 학습 문구 입력 컨텍스트 출력 컨텍스트
반려동물-선택 '개', '고양이' - $pet
개-보기 '사진 보기' -
고양이-보기 '사진 보기' 고양이 -

pet-choose 인텐트는 최종 사용자에게 개 또는 고양이를 선택하도록 요청합니다. 최종 사용자가 선택하면 인텐트는 선택항목을 $pets 매개변수로 설정하고 매개변수를 출력 컨텍스트로 사용합니다. dog-show 인텐트와 cat-show 인텐트는 활성 컨텍스트에 따라 개 또는 고양이의 사진을 보여줍니다.

출력 컨텍스트

여러 출력 컨텍스트를 인텐트 하나에 적용할 수 있습니다. 인텐트가 일치하면 인텐트에 적용된 모든 출력 컨텍스트가 활성화됩니다.

활성 컨텍스트용 매개변수 참조

출력 컨텍스트가 있는 인텐트가 일치하면 수집된 매개변수 값은 활성 컨텍스트용 매개변수 참조가 있는 임시 스토리지 역할을 할 수 있습니다. 컨텍스트가 활성 상태인 동안 향후 인텐트 일치 중에 이 값에 액세스할 수 있습니다.

예를 들어 위의 반려동물 예시를 다음과 같이 변형해 보겠습니다.

인텐트 이름 학습 문구 매개변수 입력 컨텍스트 출력 컨텍스트 응답
반려동물-선택 '개', '고양이' $pet - 반려동물-선택됨 '$pet을(를) 선택했습니다.'
반려동물-보기 '사진 보기' - 반려동물-선택됨 - '#pet-chosen.pet의 사진입니다.'

pet-choose 인텐트는 $pet 매개변수를 최종 사용자가 선택한 값으로 설정하고 pet-chosen 컨텍스트를 활성화합니다. pet-show 인텐트가 일치되면 인텐트 응답은 활성 컨텍스트를 통해 $pet 매개변수에 액세스할 수 있습니다.

수명

각 활성 컨텍스트에는 컨텍스트가 활성 상태인 동안에 대화 차례 수를 정의하는 수명이 있습니다. 기본 수명은 일반 인텐트의 경우 대화 차례 5회이고 후속 조치 인텐트의 경우 대화 차례 2회입니다. 모든 컨텍스트의 기본 수명을 재정의할 수 있습니다. 또한 모든 컨텍스트가 활성화된 후 20분이 지나면 만료됩니다. 인텐트가 이미 활성 상태인 출력 컨텍스트와 일치하면 수명 및 만료 타이머가 재설정됩니다.

예를 들어 반려동물 정보 에이전트와의 다음 대화를 가정해 보겠습니다. cats 컨텍스트의 수명은 대화 차례 2회입니다.

차례 대화 설명
1 에이전트: 어떤 종류의 반려동물을 알고 싶으세요? pet-init 인텐트가 일치합니다.
2 사용자: 나는 고양이를 좋아해요.
에이전트: 고양이에 대해 무엇을 알고 싶으세요?
pet-select 인텐트에는 cats 출력 컨텍스트가 있으며 활성화됩니다.
3 사용자: 어떻게 생겼나요?
에이전트: 고양이 사진입니다. 더 알고 싶은 것이 있으세요?
cat-image 인텐트에는 cats 입력 컨텍스트가 있으므로 일치합니다. cats 컨텍스트는 차례 1회 동안 활성화되었습니다.
4 사용자: 어떤 소리를 내나요?
에이전트: 고양이 소리입니다. 더 알고 싶은 것이 있으세요?
cat-audio 인텐트에는 cats 입력 컨텍스트가 있으므로 일치합니다. cats 컨텍스트는 차례 2회 동안 활성화되었습니다.
5 사용자: 얼마나 큰가요?
에이전트: 어떤 종류의 반려동물을 알고 싶으세요?
cats 컨텍스트는 더 이상 활성 상태가 아니므로 pet-init 인텐트가 다시 일치합니다.

입력 컨텍스트

컨텍스트가 활성화되면 Dialogflow에서는 현재 활성 컨텍스트에 해당하는 입력 컨텍스트로 구성된 인텐트가 일치할 가능성이 더 높습니다. 자세한 인텐트 일치 규칙은 다음과 같습니다.

  1. 일치하려면 인텐트의 입력 컨텍스트 목록이 현재 컨텍스트 목록의 하위 집합이어야 합니다. 이는 입력 컨텍스트가 없는 인텐트의 경우에도 마찬가지입니다.
  2. 1번 규칙을 충족하는 인텐트의 경우 현재 활성 컨텍스트 목록과 가장 가깝게 일치하는 입력 컨텍스트 목록이 있는 인텐트가 일치할 가능성이 더 높습니다.

예:

  • 입력 컨텍스트가 없는 인텐트는 언제든지 일치할 수 있습니다.
  • 활성 컨텍스트가 없으면 입력 컨텍스트가 없는 인텐트만 일치할 수 있습니다.
  • 컨텍스트 'A'와 'B'가 활성 상태이면 'A'와 'C' 입력 컨텍스트가 있는 인텐트는 일치할 수 없습니다.
  • 컨텍스트 'A, 'B', 'C'가 활성 상태이면 'A'와 'B' 입력 컨텍스트가 있는 인텐트는 일치할 수 있습니다.
  • 컨텍스트 'A'와 'B'가 활성 상태이면 'A'와 'B' 입력 컨텍스트가 있는 인텐트는 입력 컨텍스트가 없는 인텐트나 입력 컨텍스트 'A'만 있는 인텐트보다 일치할 가능성이 더 높습니다.