대화형 작업이 2023년 6월 13일에 지원 중단됩니다. 자세한 내용은 대화 작업 지원 종료를 참고하세요.

대화 작업

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

대화형 작업을 사용하면 사용자에게 제품과 서비스에 대한 액세스 권한을 부여하는 자체 대화 인터페이스로 Google 어시스턴트를 확장할 수 있습니다. 작업은 어시스턴트의 강력한 자연어 이해 (NLU) 엔진을 활용하여 자연어 입력을 처리 및 이해하고 해당 입력을 기반으로 작업을 실행합니다.

개요

대화형 작업은 대화의 진입점 (호출)을 정의하는 간단한 객체입니다.

  • 호출은 사용자가 작업 중 하나와 대화를 시작하려고 한다고 어시스턴트에게 말하는 방식을 정의합니다. 작업의 호출은 사용자가 작업을 요청할 때 일치하는 단일 인텐트로 정의됩니다.
  • 대화는 호출된 작업과 사용자가 상호작용하는 방식을 정의합니다. 인텐트, 유형, 장면, 메시지를 사용하여 대화를 빌드합니다.
  • 또한 작업에서 추가 작업을 fulfillment에 위임할 수 있습니다. fulfillment는 웹훅을 통해 작업과 통신하는 웹 서비스입니다. 이를 통해 데이터 검증, 다른 웹 서비스 호출, 비즈니스 로직 실행 등을 할 수 있습니다.

사용자에게 중요한 사용 사례를 기반으로 하나 이상의 작업을 작업 프로젝트라는 논리적 컨테이너로 묶습니다. 작업 프로젝트에는 사용자가 대화 모델의 논리적 위치 (사용자가 말할 수 있는 모든 내용 및 사용자에게 응답하는 가능한 모든 방법)에서 시작할 수 있는 전체 호출 모델 (모든 호출의 컬렉션)이 포함됩니다.

그림 1. 대화 모델에 진입점 역할을 하는 작업 컬렉션입니다. 호출 가능한 인텐트는 전역 인텐트로 간주됩니다.

호출

호출은 사용자가 어시스턴트에 작업을 호출하도록 요청할 수 있는 브랜드, 이름 또는 캐릭터를 나타내는 표시 이름과 연결됩니다. 사용자는 이 표시 이름을 단독으로 사용하거나 (기본 호출이라고 함) 선택적인 딥 링크 문구와 결합하여 작업을 호출할 수 있습니다.

예를 들어 사용자는 다음 문구를 말하여 프로젝트에서 'Google에 대한 사실'이라는 표시 이름으로 별도의 작업 세 개를 호출할 수 있습니다.

  • "Hey Google, Google에 관해 이야기해 줘"
  • "Hey Google, Google에 관한 진실은 이야기해 줘."
  • "Hey Google, Google에 관한 진실은 이야기해야 해."

이 예의 첫 번째 호출은 기본 호출입니다. 이 호출은 actions.intent.MAIN이라는 특수한 시스템 인텐트와 연결됩니다. 두 번째 및 세 번째 호출은 사용자가 특정 기능을 요청할 수 있는 추가 문구를 지정할 수 있는 딥 링크 호출입니다. 이러한 호출은 전역으로 지정한 사용자 인텐트에 해당합니다. 이 예의 각 호출은 대화의 진입점을 제공하고 단일 작업에 해당합니다.

그림 2. 기본 호출의 예

그림 2는 일반적인 기본 호출 흐름을 보여줍니다.

  1. 사용자는 일반적으로 작업을 요청할 때 어시스턴트에 표시 이름을 요청합니다.
  2. 어시스턴트는 사용자의 요청과 요청과 일치하는 인텐트를 일치시킵니다. 이 경우에는 actions.intent.MAIN입니다.
  3. 작업에서 인텐트 일치에 관한 알림을 받고 상응하는 메시지로 응답하여 사용자와 대화를 시작합니다.

대화

대화는 호출된 작업과 사용자가 상호작용하는 방식을 정의합니다. 이러한 상호작용은 대화를 위한 유효한 사용자 입력, 해당 입력을 처리하는 로직, 사용자에게 응답하기 위한 메시지를 정의하여 정의합니다. 다음 그림과 설명에서는 일반적인 대화 차례가 대화의 하위 수준 구성요소인 인텐트, 유형, 장면, 메시지에서 어떻게 작동하는지 보여줍니다.

그림 3. 대화 예시

그림 3은 일반적인 대화 차례를 보여줍니다.

  1. 사용자가 말을 하면 어시스턴트 NLU가 입력을 적절한 인텐트에 일치시킵니다. 인텐트의 언어 모델이 사용자 입력과 일치하거나 정확히 일치하는 경우 인텐트가 일치됩니다. 학습 문구 또는 사용자가 말할 수 있는 내용의 예를 지정하여 언어 모델을 정의합니다. 어시스턴트는 이러한 학습 문구를 받아서 더 확장하여 인텐트의 언어 모델을 만듭니다.
  2. 어시스턴트 NLU가 인텐트와 일치하면 입력에서 필요한 매개변수를 추출할 수 있습니다. 이러한 매개변수에는 날짜, 숫자와 같은 연결된 유형이 있습니다. 인텐트 학습 문구의 특정 부분에 주석을 지정하여 추출할 매개변수를 지정합니다.
  3. 그러면 장면이 일치된 인텐트를 처리합니다. 장면은 작업의 논리적 실행자라고 생각하면 대화를 진행시키는 데 필요한 복잡한 작업을 실행하고 실행해야 합니다. 장면은 루프에서 실행되어 인텐트 실행 확인, 슬롯 채우기, 사용자에게 메시지 다시 보내기 등과 같은 작업을 실행할 수 있는 유연한 실행 수명 주기를 제공합니다.
  4. 장면 실행이 완료되면 일반적으로 사용자에게 대화를 계속하도록 메시지를 표시하거나 적절한 경우 대화를 종료할 수 있습니다.

주문 처리

호출 또는 대화 중에 작업이 fulfillment 서비스에 일부 작업을 수행하도록 알리는 웹훅을 트리거할 수 있습니다.

그림 4. 대화 예시

그림 4는 처리를 사용하여 메시지를 생성하는 일반적인 방법을 보여줍니다. 이는 처리를 사용하는 일반적인 방법입니다.

  1. 작업 실행의 특정 시점에 JSON 페이로드가 포함된 등록된 웹훅 핸들러 (fulfillment 서비스)에 요청을 보내는 웹훅을 트리거할 수 있습니다.
  2. 처리는 REST API를 호출하여 일부 데이터를 조회하거나 JSON 페이로드에서 일부 데이터를 검증하는 등의 요청을 처리합니다. 처리를 사용하는 매우 일반적인 방법은 런타임 시 동적 프롬프트를 생성하여 현재 사용자에 맞게 대화를 맞춤설정하는 것입니다.
  3. 처리에서 JSON 페이로드가 포함된 작업에 응답을 반환합니다. 페이로드의 데이터를 사용하여 실행을 계속하고 사용자에게 응답할 수 있습니다.