인텐트는 어시스턴트가 실행해야 하는 작업을 나타냅니다(예: 처리해야 하는 일부 사용자 입력 또는 처리해야 하는 시스템 이벤트). 인텐트를 사용하여 호출 및 대화 모델을 빌드합니다. 이러한 이벤트가 발생하면 어시스턴트 런타임에서 이를 상응하는 인텐트와 일치시키고 인텐트를 처리할 작업으로 전송합니다. 인텐트에는 두 가지 주요 유형이 있으며 다음 목록에 설명되어 있습니다.
사용자 인텐트를 사용하면 브랜드 및 서비스와 관련된 사용자 요청을 이해하는 어시스턴트의 기능을 확장할 수 있습니다. 인텐트 내에서 커스텀 학습 문구를 정의하면 인텐트의 언어 모델이 생성됩니다. 이 언어 모델은 어시스턴트 NLU를 강화하여 더 많은 것을 이해하는 능력을 높입니다.
시스템 인텐트에는 학습 데이터나 어시스턴트가 정의한 기타 비대화형 입력 신호가 있습니다. 즉, 이러한 인텐트에 관한 학습 문구를 정의할 필요가 없습니다. 어시스턴트는 일반적인 호출과 같이 기본 호출과 같이 잘 알려진 시스템 이벤트 중에 또는 사용자가 입력을 제공하지 않는 경우에 이러한 인텐트를 매칭합니다.
사용자 인텐트
작업을 빌드할 때 학습 문구를 포함하는 사용자 인텐트를 만들어 어시스턴트의 더 많은 이해 능력을 향상합니다. 어시스턴트는 학습 문구를 사용하여 사용자 요청을 작업에 위임할 때 NLU를 보강합니다.
이 경우 어시스턴트는 사용자와 작업 간의 통신을 중개하여 사용자 입력을 일치하는 언어 모델이 있는 인텐트에 매핑합니다. 그런 다음 어시스턴트에서 일치하는 인텐트를 작업에 알리므로 장면 내에서 작업을 처리할 수 있습니다.
사용자 인텐트를 빌드할 때 다음 요소를 지정합니다.
전역 인텐트 지정은 호출 시 및 대화 중에 어시스턴트 런타임이 지정된 사용자 인텐트와 일치할 수 있는지 여부를 정의합니다. 기본적으로 어시스턴트는 대화 중에만 사용자 인텐트를 일치시킬 수 있습니다. 전역으로 표시한 인텐트만 딥 링크 호출을 사용할 수 있습니다.
학습 구문은 사용자가 인텐트와 일치시키기 위해 말할 수 있는 문구의 예입니다. 어시스턴트 NLU (자연어 이해) 엔진은 이러한 학습 문구를 자연스럽게 확장하여 다른 유사한 문구를 포함합니다. 대량의 고품질 예를 제공하면 인텐트의 품질과 일치 정확도가 향상됩니다.
매개변수는 사용자 입력에서 추출할 입력 데이터입니다. 매개변수를 만들려면 학습 문구를 유형으로 주석 처리하여 NLU 엔진에 사용자 입력 일부를 추출할 것을 알립니다. 시스템 유형을 사용하거나 매개변수에 관한 맞춤 유형을 직접 만들 수 있습니다.
NLU 엔진은 사용자 입력에서 매개변수 일치를 감지하면 입력된 매개변수로 값을 추출하므로 장면에서 이 로직으로 로직을 실행할 수 있습니다. 인텐트 매개변수의 이름이 장면 슬롯과 같으면 어시스턴트 런타임이 자동으로 장면 슬롯을 인텐트 매개변수의 값으로 채웁니다. 자세한 내용은 슬롯 값 매핑 문서를 참고하세요.
인텐트 매개변수는 '부분' 일치도 지원합니다. 예를 들어 DateTime
유형을 지정했는데 사용자가 날짜만 제공하는 경우에도 NLU는 부분 값을 매개변수로 추출합니다.
작업에 관한 모든 사용자 입력을 처리하는 데 자체 NLU를 사용할 수 있습니다. 예를 들어 작업이 대화 중에 일치하지 않는 모든 시나리오에 응답하도록 할 수 있습니다. 모든 사용자 입력을 캡처하려면 자유 형식 텍스트 유형으로 인텐트를 만듭니다. 그러나 맞춤 인텐트를 사용하여 어시스턴트의 기본 불일치 동작을 전역으로 재정의하는 것은 피해야 합니다. 이렇게 하면 사용자가 작업 간에 이동하는 기능에 부정적인 영향을 미칠 수 있습니다.
Actions 콘솔에서 맞춤 인텐트를 만들 때 Actions Builder가 사용자 인텐트와 동일한 역할을 채울 수 있는 시스템 인텐트를 제안합니다. 시스템 인텐트에 관한 자세한 내용은 다음 섹션을 참고하세요.
시스템 인텐트
어시스턴트는 표준 시스템 이벤트를 기반으로 시스템 인텐트를 일치시킵니다. 이러한 이벤트에는 미디어 플레이어를 일시중지하기 위해 "일시중지"라고 말하는 사용자와 같은 시스템 정의 언어 모델이 있거나 사용자가 입력을 전혀 제공하지 않는 등의 언어 모델이 없을 수 있습니다. 이러한 인텐트는 어시스턴트에서 제공하므로 인텐트가 매칭되는 방식을 걱정하지 않아도 되고 인텐트가 일치할 때 인텐트를 처리하는 방법만 제공하면 됩니다.
또한 시스템 인텐트는 YES
및 NO
와 같이 자주 필요한 작업을 위한 사용자 인텐트를 만들 필요가 없습니다. 시스템 인텐트는 모든 언어에 맞게 학습되므로 여러 언어로 사용자에게 일관된 환경을 더 쉽게 구현할 수 있습니다.
시스템 인텐트는 전역 인텐트로 설정할 수도 있습니다.
시스템 인텐트는 버전이 지정됩니다. 특정 버전의 시스템 인텐트가 어시스턴트에서 지원되는 한 이 버전을 사용할 수 있습니다. 작업이 지원되지 않는 시스템 인텐트 버전을 사용하면 시스템 인텐트가 지원되는 버전으로 자동 업데이트됩니다.
인텐트 목록
인텐트 | 설명 |
---|---|
actions.intent.MAIN
|
모든 작업 프로젝트에는 표시 이름에 연결된 이 기본 기본 호출이 포함되어야 합니다. 사용자는 "Hey Google, <표시 이름>"에 말해 줘라고 말하여 작업을 호출합니다. |
|
이러한 인텐트는 사용자가 작업의 인텐트와 일치할 수 없는 것을 말하는 경우에 일치됩니다. 최종 인텐트에서 개별 메시지 및 이탈 메시지를 설정할 수 있습니다. |
|
8초 후 사용자의 입력이 없으면 이러한 인텐트가 일치됩니다. 최종 인텐트에서 각 인텐트에 대한 개별 메시지 및 이탈 메시지를 설정할 수 있습니다. |
actions.intent.CANCEL
|
이 인텐트는 사용자가 "종료하고 싶어요"라고 말하는 등 대화 중에 작업을 종료하려고 할 때 연결됩니다. |
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
인텐트만 사용해야 합니다.