대화 모델 빌드

대화 모델은 사용자가 작업에 할 수 있는 말과 작업이 사용자에게 응답하는 방식을 정의합니다. 대화 모델의 기본 구성요소는 인텐트, 유형, 장면, 프롬프트입니다. 작업 중 하나가 호출되면 Google 어시스턴트가 사용자를 해당 작업으로 넘기면 작업은 다음과 같이 대화 모델에 따라 사용자와 대화를 시작합니다.

  • 유효한 사용자 요청 - 사용자가 작업에 말할 수 있는 내용을 정의하려면 어시스턴트 NLU를 보강하는 인텐트 컬렉션을 만듭니다. 그러면 어시스턴트 NLU가 작업과 관련된 요청을 이해할 수 있습니다. 각 인텐트는 사용자가 해당 인텐트와 일치시키기 위해 말할 수 있는 내용을 설명하는 학습 문구를 정의합니다. 어시스턴트 NLU는 유사한 문구를 포함하도록 이러한 학습 문구를 확장하며, 이러한 문구를 집계하면 인텐트의 언어 모델이 생성됩니다.

  • 작업 로직 및 응답 - 장면은 인텐트를 처리하고, 필요한 로직을 실행하고, 사용자에게 반환할 메시지를 생성합니다.

그림 1. 대화 모델은 사용자 환경을 정의하는 인텐트, 유형, 장면, 프롬프트로 구성됩니다. 호출할 수 있는 인텐트는 대화에서 일치시키는 데도 유효합니다.

유효한 사용자 요청 정의

사용자가 작업에 할 수 있는 말을 정의하려면 인텐트와 유형을 조합하여 사용합니다. 사용자 인텐트와 유형을 사용하면 자체 언어 모델로 어시스턴트 NLU를 보강할 수 있습니다. 시스템 인텐트 및 유형을 사용하면 사용자가 입력을 전혀 감지하지 않고 작업 또는 어시스턴트를 종료하려는 경우와 같이 내장된 언어 모델과 이벤트 감지를 활용할 수 있습니다.

사용자 인텐트 만들기

사용자 인텐트를 사용하면 사용자가 작업에 말할 수 있는 내용을 정의하는 자체 학습 문구를 정의할 수 있습니다. 어시스턴트 NLU는 이러한 문구를 사용하여 사용자가 말하는 내용을 이해하도록 학습합니다. 사용자가 사용자 인텐트의 언어 모델과 일치하는 내용을 말하면 어시스턴트는 인텐트를 일치시키고 작업을 알려 주므로 개발자는 로직을 실행하고 사용자에게 응답할 수 있습니다.

시스템 인텐트 만들기

시스템 인텐트를 사용하면 사용자가 작업을 종료하려고 하거나 사용자 입력 시간이 초과될 때와 같은 일반적인 이벤트에 사전 정의된 언어 모델이 있는 인텐트를 활용할 수 있습니다. 시스템 인텐트를 만들려면 다음 안내를 따르세요.

커스텀 유형 만들기

커스텀 유형을 사용하면 자체 유형 사양을 만들어 NLU가 단일 키에 매핑해야 하는 값 집합을 이해하도록 학습시킬 수 있습니다.

맞춤 유형을 만들려면 다음 단계를 따르세요.

작업 로직 및 응답 빌드

어시스턴트 NLU는 사용자 요청을 인텐트와 일치시키므로 작업이 장면에서 요청을 처리할 수 있습니다. 장면은 대화 중에 이벤트를 처리할 수 있는 강력한 로직 실행자입니다.

장면 만들기

다음 섹션에서는 장면을 만들고 각 장면의 수명 주기 단계에 관한 기능을 정의하는 방법을 설명합니다.

장면을 만들려면 다음 단계를 따르세요.

일회성 설정 정의

장면이 처음 활성화되면 시작 시 단계에서 일회성 작업을 실행할 수 있습니다. On Enter 단계는 한 번만 실행되며 장면의 실행 루프 내에서 실행되지 않는 유일한 단계입니다.

조건 확인

조건을 사용하면 슬롯 채우기, 세션 저장소, 사용자 저장소, 홈 저장소 매개변수를 확인하여 장면 실행 흐름을 제어할 수 있습니다.

슬롯 채우기 정의

슬롯을 사용하면 사용자 입력에서 입력된 매개변수를 추출할 수 있습니다.

슬롯 값 매핑

많은 경우 이전 인텐트 일치에는 해당하는 장면의 슬롯 값을 부분적으로 또는 완전히 채우는 매개변수가 포함될 수 있습니다. 이러한 경우 인텐트 매개변수로 채워진 모든 슬롯은 슬롯 이름이 인텐트 매개변수 이름과 일치하면 장면의 슬롯 채우기에 매핑됩니다.

예를 들어 사용자가 '커다란 바닐라 커피를 주문하고 싶어'라고 말하여 음료를 주문하는 인텐트를 매칭하는 경우 해당 장면에서 동일한 슬롯을 정의하면 크기, 맛, 음료 유형에 관한 기존 슬롯이 해당 장면에 채워진 것으로 간주됩니다.

입력 처리

이 단계에서는 어시스턴트 NLU가 사용자 입력을 인텐트와 일치시키도록 할 수 있습니다. 원하는 인텐트를 장면에 추가하여 인텐트 일치 범위를 특정 장면으로 지정할 수 있습니다. 이를 통해 특정 장면이 활성화되었을 때 어시스턴트에 특정 인텐트를 일치시키도록 지시하여 대화 흐름을 제어할 수 있습니다.