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

대화형 작업 (Dialogflow)

대화 작업은 개발자가 어시스턴트 사용자를 위한 맞춤 환경 또는 대화를 만들 수 있도록 하여 Google 어시스턴트의 기능을 확장합니다. 대화에서 대화 작업은 어시스턴트의 요청을 처리하고 오디오 및 시각적 구성요소와 함께 응답을 반환합니다. 대화형 작업은 응답을 반환하기 전에 외부 서비스에 연결하여 대화 또는 비즈니스 로직을 추가할 수도 있습니다.

예를 들어 사용자는 정보를 조회하거나 맞춤 추천을 받거나 디지털 결제와 관련된 트랜잭션을 실행하려고 할 때 대화형 작업을 호출하여 외부 처리 서비스의 응답을 받을 수 있습니다.

Google 어시스턴트와의 대화에서 사용자는 다자간 세션 진행 상황에 관해 질문하고 답변을 받습니다.
그림 1. 대화형 작업의 예

사용 사례

대화형 작업은 다른 환경을 보완하는 간단한 사용 사례에 가장 적합합니다. 좋은 대화 작업은 다음과 같은 일반적인 카테고리로 분류되는 경우가 많습니다.

  • 사용자가 쉽게 답변할 수 있는 정보 항공편 예약과 같이 시간이나 날짜 등 익숙한 입력으로 수행할 수 있는 작업입니다.
  • 빠르지만 굉장히 유용한 작업: 이렇게 하면 사용자는 보통 좋아하는 스포츠팀이 다음 경기를 언제 플레이해야 하는지 파악하는 데 시간을 거의 들이지 않고도 즉각적인 이점을 얻을 수 있습니다.
  • 본질적으로 음성에 더 적합한 작업 이러한 동작은 일반적으로 요가를 하는 동안 코칭을 받거나 가벼운 운동을 하는 등 핸즈프리로 수행하려고 합니다.

대화형 작업 작동 방식

컴퓨터 중심 패러다임을 사용하는 기존 모바일 및 데스크톱 앱과 달리 사용자는 자연스러운 사운드를 앞뒤로 대화하면서 어시스턴트용 작업과 상호작용합니다. 대화형 작업은 사용자가 호출할 때 시작되고 사용자가 미리 결정된 문구를 사용하여 종료하도록 선택할 때까지 또는 대화형 작업이 대화의 끝을 표시할 때까지 계속됩니다.

대화 중에 어시스턴트는 사용자 입력을 음성에서 텍스트로 변환하고 자연어 처리를 위한 JSON 요청으로 만듭니다. 이러한 요청은 대화 처리로 전송됩니다.

대화 처리는 사용자의 쿼리를 구조화된 데이터로 파싱하고, 해당 데이터를 처리하고, 어시스턴트에 웹훅 JSON 응답을 반환합니다. 그런 다음 어시스턴트는 응답을 처리하고 사용자에게 표시합니다.

대화 처리는 JSON 요청 입력 및 웹훅 JSON 응답 출력으로 표시할 수 있습니다.
그림 2. 대화 처리는 JSON in JSON 출력 시스템입니다.

자체 자연어 처리 서비스를 빌드하는 것은 어려울 수 있으므로 Dialogflow는 이를 처리하는 방법으로 제공합니다. Dialogflow를 사용할 수 없는 개발자를 위해 별도의 관련 개발 경로가 포함된 백업 옵션으로 Actions SDK도 제공합니다.

Dialogflow에서 에이전트를 설정하면 Dialogflow 처리를 사용할 수 있는 기능을 포함한 Dialogflow의 기능으로 대화 처리를 강화합니다. 이 접근 방식을 사용하면 사용자에게 원하는 결과를 제공하는 데 필요한 다른 서비스와 대화 처리를 분리할 수 있습니다.

Actions on Google이 사용자 발화를 파싱하여 Dialogflow에 요청을 전송합니다. Dialogflow는 인텐트를 일치시키고 해당 Dialogflow fulfillment로 보낼 매개변수를 추출합니다. 그러면 처리에서 Actions on Google로 응답을 다시 보내 어시스턴트 표면에서 응답을 렌더링합니다.
그림 3. Dialogflow 사용 시 대화 처리

대화형 작업 빌드

대화 작업 빌드는 대부분 대화를 설계하고 대화 처리를 빌드하는 것입니다. 대화를 대화형 작업용 사용자 인터페이스라고 생각하세요. 사용자가 작업 프로젝트를 호출하는 방법, 대화에서 말할 수 있는 유효한 내용, 작업 프로젝트가 사용자에게 응답하는 방식에 관해 생각해야 합니다.

작업 프로젝트에서 프로젝트 게시를 위한 메타데이터를 제공하고 대화 처리 방법을 지정합니다. Dialogflow를 사용하는 개발자는 Dialogflow 에이전트를 프로젝트와 연결한 다음 Dialogflow를 통해 fulfillment를 빌드합니다. Actions SDK를 사용하는 개발자의 경우 대화 처리를 빌드하려면 대화 웹훅 형식으로 코딩 및 배포해야 합니다.

대화를 설계할 때는 Google의 프로세스와 디자인 원칙을 따르는 것이 좋습니다. 대화 인터페이스는 여전히 비교적 새로운 기술이며 권장사항을 학습하면 향후 시간을 절약할 수 있습니다.

Dialogflow를 사용한 처리

Dialogflow 에이전트와 통합하는 경우 에이전트는 대화형 작업의 사용자 쿼리에 대한 NLU를 처리합니다. 이 단계에서는 Dialogflow 에이전트가 다음을 수행합니다.

  1. 제공하는 학습 문구와 대화 컨텍스트를 기반으로 어시스턴트의 각 수신 요청을 파싱합니다.
  2. 각 요청을 Dialogflow 인텐트 (이벤트라고도 함)와 일치시킵니다.
  3. Dialogflow 항목으로 매개변수를 추출합니다.

그런 다음 Dialogflow 에이전트는 자체 처리 (웹훅로 배포됨)에서 호출하여 어시스턴트로 돌아가기 위한 응답을 생성하는 REST API 또는 기타 백엔드 서비스 호출과 같은 몇 가지 로직을 수행할 수 있습니다. 이 웹훅은 Dialogflow 처리라고도 하며 Dialogflow 웹훅 형식을 사용합니다.

Dialogflow는 인텐트 일치를 위해 사용자 발화를 허용하며, Dialogflow 처리에 추출된 매개변수를 제공합니다. 처리는 사용자에게 응답을 반환합니다.
그림 4. Dialogflow 에이전트는 Dialogflow 처리를 위해 사용자 쿼리를 구조화된 데이터로 파싱합니다.

Dialogflow를 사용할 때 대화 처리를 빌드하는 것은 주로 Dialogflow 처리 웹훅 개발로 이루어집니다. Actions on Google 문서에는 Dialogflow 처리 웹훅을 설계, 빌드, 테스트하는 데 도움이 되는 리소스가 포함되어 있습니다. 특히 이러한 리소스에는 Node.js 클라이언트 라이브러리자바 클라이언트 라이브러리가 포함됩니다.

Dialogflow로 빌드할 때 Dialogflow 콘솔을 사용하여 Dialogflow 인텐트, 항목, 학습 문구를 만듭니다.

Dialogflow에 대한 일반적인 내용은 Dialogflow 문서에서 Actions on Google 통합에 대해 읽어보세요.

Actions SDK를 사용하여 처리

Actions SDK로 대화 처리를 빌드하려면 주로 작업 패키지를 만들고 배포하는 것으로 구성됩니다. 작업 패키지는 ActionPackage 형식으로 생성되며 대화 웹훅 형식을 사용합니다. 작업 패키지에는 특정 작업 프로젝트의 모든 작업이 포함되어 있습니다.

어시스턴트는 Actions on Google 인텐트를 사용하여 대화 처리에 사용자 쿼리를 제공합니다. 각 인텐트에 대해 처리 웹훅은 인텐트를 파싱하고 처리한 다음 사용자의 어시스턴트에 JSON 응답을 반환해야 합니다.

응답

어시스턴트용 작업을 빌드할 때 음성 활성화 스피커를 위한 음성 중심 대화 또는 어시스턴트가 지원하는 노출 영역의 시각적 대화와 같은 다양한 표시 경로에 관한 대화를 설계합니다. 이 접근 방식을 사용하면 사용자가 음성 또는 시각적 어포던스를 통해 작업을 빠르게 완료할 수 있습니다.

처리를 빌드할 때 어시스턴트가 사용자에게 표시할 수 있는 다양하고 흥미로운 응답 유형 중에서 선택할 수 있습니다. 간단한 텍스트가 포함된 채팅 풍선부터 미디어 응답, 캐러셀, 양방향 캔버스를 사용하는 HTML까지 다양합니다.

다음 단계

첫 번째 대화 작업을 빌드하기 위한 자세한 단계별 안내는 Google 어시스턴트용 작업 빌드 (레벨 1) Codelab을 따르세요.

그런 다음 Dialogflow 또는 Actions SDK를 사용하여 자체 대화 처리를 빌드하는 가이드를 계속 진행할 수 있습니다. 대화형 작업을 빌드하기 위한 다음 추가 리소스를 살펴볼 수도 있습니다.