인텐트

인텐트는 어시스턴트가 실행해야 하는 작업(예: 처리가 필요한 일부 사용자 입력이나 처리해야 하는 시스템 이벤트)을 나타냅니다. 인텐트를 사용하면 호출대화 모델을 빌드하는 데 도움이 됩니다. 이러한 이벤트가 발생하면 어시스턴트 런타임은 이를 상응하는 인텐트와 일치시키고 인텐트를 처리할 작업에 전송합니다. 다음 목록에 설명된 두 가지 기본 인텐트 유형이 있습니다.

  • 사용자 인텐트를 사용하면 브랜드 및 서비스와 관련된 사용자 요청을 이해하는 어시스턴트의 기능을 확장할 수 있습니다. 인텐트 내에서 커스텀 학습 문구를 정의하면 인텐트의 언어 모델이 생성됩니다. 이 언어 모델은 어시스턴트 NLU를 보강하여 더 많은 것을 이해할 수 있도록 합니다.

  • 시스템 인텐트에는 어시스턴트에서 정의한 학습 데이터 또는 기타 비대화 입력 신호가 있습니다. 즉, 이러한 인텐트의 학습 문구를 정의할 필요가 없습니다. 어시스턴트는 기본 호출과 같은 잘 알려진 시스템 이벤트 중에 또는 사용자가 입력을 제공하지 않을 때 표준 방식으로 이러한 인텐트를 일치시킵니다.

그림 1. 일반적인 인텐트 일치 시나리오 사용자가 전역 인텐트와 일치하는 내용을 말합니다. 이에 상응하는 장면이 활성화되고 결국 더 많은 사용자 입력을 사용합니다. 또 다른 인텐트가 일치되면 다른 장면으로 전환되어 활성화됩니다.

사용자 인텐트

작업을 빌드할 때 학습 문구가 포함된 사용자 인텐트를 만들면 어시스턴트의 이해 능력이 향상됩니다. 어시스턴트는 사용자 요청을 작업에 위임할 때 학습 문구를 사용하여 NLU를 보강합니다.

이 경우 어시스턴트는 사용자와 개발자 작업 간의 통신을 브로커하여 사용자 입력을 일치하는 언어 모델이 있는 인텐트에 매핑합니다. 그러면 어시스턴트가 매칭된 인텐트를 작업에 알리므로 장면 내에서 이를 처리할 수 있습니다.

사용자 인텐트를 빌드할 때 다음 요소를 지정합니다.

  • 전역 인텐트 지정은 어시스턴트 런타임이 호출 시뿐만 아니라 대화 중에 지정된 사용자 인텐트와 일치시킬 수 있는지 여부를 정의합니다. 기본적으로 어시스턴트는 대화 중에만 사용자 인텐트를 일치시킬 수 있습니다. 전역으로 표시한 인텐트만 딥 링크를 호출할 수 있습니다.

  • 학습 문구는 사용자가 말하는 내용 중 인텐트에 매칭되는 문구의 예입니다. 어시스턴트 NLU (자연어 이해) 엔진은 다른 유사한 문구를 포함하도록 이러한 학습 문구를 자연스럽게 확장합니다. 고품질 예를 많이 제공하면 인텐트의 품질과 일치 정확성이 향상됩니다.

  • 매개변수는 사용자 입력에서 추출하려는 유형이 지정된 데이터입니다. 매개변수를 만들려면 학습 문구에 유형을 주석으로 달아 사용자 입력의 일부를 추출하도록 NLU 엔진에 알립니다. 시스템 유형을 사용하거나 매개변수에 자체 맞춤 유형을 만들 수 있습니다.

NLU 엔진은 사용자 입력에서 매개변수 일치를 감지하면 값을 유형이 지정된 매개변수로 추출하므로 장면에서 이 값으로 로직을 실행할 수 있습니다. 인텐트 매개변수가 장면 슬롯과 이름이 같으면 어시스턴트 런타임은 인텐트 매개변수의 값으로 장면 슬롯을 자동으로 채웁니다. 자세한 내용은 슬롯 값 매핑 문서를 참고하세요.

인텐트 매개변수는 '부분' 일치도 지원합니다. 예를 들어 DateTime 유형을 지정하고 사용자가 날짜만 제공하는 경우에도 NLU는 일부 값을 매개변수로 추출합니다.

자체 NLU를 사용하여 작업에 대한 모든 사용자 입력을 처리할 수 있습니다. 예를 들어 대화 중에 작업이 일치하지 않는 모든 시나리오에 응답하도록 할 수 있습니다. 모든 사용자 입력을 캡처하려면 자유 형식 텍스트 유형으로 인텐트를 만듭니다. 하지만 어시스턴트의 기본 불일치 동작을 전역적으로 재정의하기 위해 맞춤 인텐트를 사용해서는 안 됩니다. 사용자가 작업 간에 이동하는 기능에 부정적인 영향을 미칠 수 있기 때문입니다.

Actions 콘솔에서 맞춤 인텐트를 만들면 Actions Builder가 사용자 인텐트와 동일한 역할을 채울 수 있는 시스템 인텐트를 추천합니다. 시스템 인텐트에 관한 자세한 내용은 다음 섹션을 참고하세요.

시스템 인텐트

어시스턴트는 표준 시스템 이벤트를 기반으로 시스템 인텐트를 매칭합니다. 이러한 이벤트에는 사용자가 미디어 플레이어를 일시중지하도록 "일시중지"라고 말하는 등 시스템 정의 언어 모델이 있거나 사용자가 입력을 전혀 제공하지 않는 등의 언어 모델이 없을 수도 있습니다. 이러한 인텐트는 어시스턴트에서 제공하므로 일치 방식을 신경 쓸 필요는 없으며 일치 시 인텐트를 처리하는 방법에만 신경 쓰면 됩니다.

시스템 인텐트도 자주 필요한 작업(예: YESNO)의 사용자 인텐트를 만들지 않아도 됩니다. 시스템 인텐트는 모든 언어에 맞게 학습되므로 여러 언어에서 사용자에게 일관된 환경을 더 쉽게 구현할 수 있습니다. 시스템 인텐트는 전역 인텐트로 설정할 수도 있습니다.

시스템 인텐트는 버전이 관리됩니다. 어시스턴트에서 특정 버전을 지원하는 한 특정 버전의 시스템 인텐트를 사용할 수 있습니다. 작업에서 지원되지 않는 버전의 시스템 인텐트를 사용하는 경우 시스템 인텐트는 지원되는 버전으로 자동 업데이트됩니다.

인텐트 목록

인텐트 설명
actions.intent.MAIN 모든 작업 프로젝트에는 표시 이름에 연결된 이 기본 호출이 포함되어야 합니다. 사용자는 "Hey Google, <표시 이름>에 말해 줘"와 같은 문구를 말하여 작업을 호출합니다.

actions.intent.NO_MATCH_1

actions.intent.NO_MATCH_2

actions.intent.NO_MATCH_FINAL

이러한 인텐트는 사용자가 작업의 인텐트에 일치시킬 수 없는 내용을 말할 때 일치됩니다. 최종 인텐트에서 개별 재프롬프트와 종료 메시지를 설정할 수 있습니다.

actions.intent.NO_INPUT_1

actions.intent.NO_INPUT_2

actions.intent.NO_INPUT_FINAL

이러한 인텐트는 8초 후에 사용자의 입력이 없으면 일치됩니다. 최종 인텐트에서 각 인텐트에 개별 재프롬프트와 종료 메시지를 설정할 수 있습니다.

actions.intent.CANCEL 이 인텐트는 사용자가 "I want to quit"이라고 말하는 것과 같이 대화 중에 작업을 종료하려고 할 때 일치됩니다.
actions.intent.MEDIA_STATUS_FINISHED 이 인텐트는 사용자가 미디어 재생을 완료하거나 다음 미디어로 건너뛸 때 일치되어 작업에 전송됩니다.
actions.intent.MEDIA_STATUS_PAUSED 이 인텐트는 사용자가 미디어 응답에서 미디어 재생을 일시중지할 때 일치되어 작업으로 전송됩니다.
actions.intent.MEDIA_STATUS_STOPPED 이 인텐트는 사용자가 미디어 응답에서 미디어 재생을 중지하거나 종료할 때 일치되어 작업으로 전송됩니다.
actions.intent.MEDIA_STATUS_FAILED 이 인텐트는 일치되어 미디어 응답의 플레이어가 재생되지 않을 때 작업으로 전송됩니다.
actions.intent.YES

이 인텐트는 사용자가 작업에 긍정적인 응답을 제공할 때 일치됩니다.

actions.intent.NO

이 인텐트는 사용자가 작업에 부정적인 응답을 제공할 때 매칭됩니다.

actions.intent.REPEAT

이 인텐트는 사용자가 작업에 마지막 응답을 반복하도록 요청할 때 일치됩니다. 에이전트에서 시스템 인텐트가 사용 설정되지 않은 경우 어시스턴트가 자동으로 반복 요청을 처리합니다. 이 시스템 인텐트를 사용 설정하면 반복 요청과 응답을 처리하는 방법을 수정할 수 있습니다.

actions.intent.PLAY_GAME 이 인텐트는 사용자가 게임 플레이를 요청할 때 매칭됩니다. 이 인텐트를 사용하면 Actions on Google에서 제공하는 암시적 호출 (표시 이름을 사용하지 않는 호출)을 선택할 수 있습니다.

다른 언어 지원 추가

특정 시스템 인텐트(예: YES, NO, NO_MATCH)는 영어로만 지원됩니다.다른 언어 지원을 추가하려면 이러한 시스템 인텐트와 일치하는 사용자 인텐트를 만들어야 합니다. 새 인텐트는 구현한 시스템 인텐트와 동일한 방식으로 코드에서 처리해야 합니다.

예를 들어 새 작업을 개발하고 YES 시스템 인텐트를 구현했다고 가정해 보겠습니다. YES 시스템 인텐트는 영어로만 지원되지만 앱이 독일어와 일본어의 상호작용도 지원하도록 해야 합니다. 추가 언어를 지원하려면 독일어 및 일본어 학습 문구가 포함된 인텐트를 만든 다음 YES 시스템 인텐트에 사용한 처리를 구현합니다.

사용자 인텐트 만들기에 대해 자세히 알아보세요.

사용자 인텐트 현지화에 대해 자세히 알아보세요.

일치하지 않음 항복

사용자의 응답이 인텐트 중 하나와 일치하지 않으면 어시스턴트는 입력을 처리하려고 시도합니다. 이렇게 하면 사용자가 대화 중에 작업을 쉽게 변경할 수 있습니다. 예를 들어 사용자가 "이번 주에 상영하는 영화는?"이라고 묻고 대화 중간에 "내일 날씨 어때?"와 같이 맥락을 변경하면 이 예에서는 '내일 날씨 어때?'가 초기 프롬프트에서 트리거된 대화에 유효한 응답이 아니므로 어시스턴트는 자동으로 일치를 처리하고 사용자를 적절한 대화로 이동하려고 합니다.

어시스턴트가 사용자의 입력과 일치하는 적절한 작업을 찾지 못하면 사용자는 작업의 컨텍스트 내에서 계속 진행합니다.

어시스턴트가 유효한 일치하지 않는 시나리오에 응답하기 위해 작업을 중단할 수도 있으므로 사용자 쿼리를 처리하는 데 NO_MATCH 시스템 인텐트를 사용해서는 안 됩니다. 사용자에게 다시 메시지를 표시하는 데는 NO_MATCH 인텐트만 사용해야 합니다.