Dialogflow에서 Actions Builder로 마이그레이션 도구

Actions Builder는 간단하고 간소화된 방식으로 대화형 작업을 빌드하는 데 도움이 되므로 Google 어시스턴트용으로 빌드하는 가장 좋은 방법입니다. Actions Builder는 Actions 콘솔에 통합된 웹 기반 IDE로, 다음과 같은 기능을 제공합니다.

  • 작업의 대화를 제어하는 시각적 워크플로 및 상태 기반 방법
  • 프로토타입 제작 속도가 빨라지고 지연 시간이 단축됩니다.
  • 대화형 작업을 빌드, 분석, 디버깅하는 단일 인터페이스입니다.

Dialogflow로 빌드한 대화형 작업이 있는 경우 Actions 콘솔 내에서 프로젝트를 Actions Builder로 이전할 수 있습니다.

이전해야 하는 이유

Dialogflow 에이전트 이전 요구사항은 없고 Google 어시스턴트 기기에서 작업이 계속 작동하지만 Actions Builder와 Actions SDK를 사용하면 이점이 있습니다.

  • Actions SDK 및 CLI를 사용한 도구 개선

    • Actions SDK 및 CLI를 사용하면 복잡한 프로젝트를 빌드하고 팀과 쉽게 공동작업할 수 있습니다. 대화 디자이너는 먼저 Actions Builder에서 대화 흐름을 빌드할 수 있습니다. 그러면 개발자는 프로젝트를 파일 기반 구조로 다운로드하고 선호하는 개발 도구 및 버전 제어 시스템을 사용하여 기능을 계속 빌드할 수 있습니다. 프로젝트를 Actions Builder로 다시 푸시하면 다른 팀원이 계속해서 작업을 빌드, 테스트, 배포할 수 있습니다.
  • 대화 설계 권장사항과의 통합 개선

    • 각 장면 내에서 대체 인텐트를 맞춤설정하면 대화의 어느 시점에서든 입력 없음 및 일치하지 않는 응답을 제공할 수 있습니다.
    • 대화형 환경을 빌드하는 상태 기반 그래픽 방법을 사용하여 디자이너와 개발자 간에 손쉬운 공동작업
  • 손쉬운 현지화

    • 인텐트, 장면, 유형 (예: 학습 문구, 프롬프트, 유형 동의어)의 현지화 가능한 모든 콘텐츠를 한 페이지에서 수정할 수 있습니다.

대화 구현 개선사항

Actions Builder를 통해 Actions 콘솔에 많은 개선사항이 도입되고 개발 프로세스가 간소화됩니다. 이 섹션에서는 Actions Builder가 어떻게 작업 개발 프로세스를 간소화하고 단순화하는지 설명합니다.

인텐트 재사용 가능성

Dialogflow에서 웹훅 로직은 인텐트와 연결되어 있습니다. 즉, 인텐트를 다른 웹훅과 함께 재사용할 수 없습니다. 동일한 학습 문구를 사용하지만 웹훅 로직이 다른 경우 각 웹훅 로직 사례의 다른 핸들러 이름을 참조하는 인텐트를 추가로 만들어야 합니다.

Actions Builder에서 인텐트에는 학습 문구와 항목이 포함되지만 웹훅은 독립적입니다. 이 접근 방식을 사용하면 동일한 인텐트에 서로 다른 웹훅 핸들러를 사용할 수 있으므로 유연성이 향상됩니다.

대화 흐름의 시각화 개선

Dialogflow에서 컨텍스트는 대화의 특정 지점에서 일치할 가능성이 높은 인텐트를 나타냅니다.

Actions Builder는 컨텍스트 대신 장면을 사용하여 대화의 여러 부분에서 어떤 인텐트에 액세스할 수 있는지 처리합니다.

사용자가 장면에 들어가면 전환은 사용자가 취할 수 있는 대화 경로를 정의합니다. 전환은 조건부 로직뿐만 아니라 맞춤 또는 시스템 인텐트 일치에 기반할 수 있습니다.

빌더의 UI를 사용하면 전환이 장면을 연결하는 방식을 쉽게 이해할 수 있습니다. 그림 1에서 장면 guess_gamesuggested_new_game 장면 (1)으로 전환됩니다. 장면 내에서 액세스 가능한 인텐트 2개(generic_nogeneric_yes)도 확인할 수 있습니다. 매칭되는 인텐트에 따라 suggested_new_game 장면이 show_menu 또는 routing_game 장면으로 전환됩니다 (2).

그림 1. 장면 전환 (1) 및 인텐트 처리 (2)가 포함된 장면의 그래픽 뷰

시나리오에 따른 맞춤설정 가능한 메시지

Dialogflow에서는 웹훅으로 간단한 응답을 보내거나 Dialogflow 콘솔에서 정적 응답을 정의할 수 있습니다.

Actions Builder에는 프롬프트 큐의 개념이 도입되었습니다. 장면의 여러 섹션과 웹훅에서 프롬프트를 정의할 수 있습니다. 모든 프롬프트는 프롬프트 대기열에 추가되고 하나의 응답으로 병합되어 사용자에게 전송됩니다. 이 접근 방식을 사용하면 사용자가 일치시킨 의도뿐만 아니라 사용자가 한 말이나 행동에 따라 응답을 모을 수 있습니다.

예를 들어 프롬프트가 장면 웹훅에 정의되어 있으면 웹훅 프롬프트가 먼저 프롬프트 대기열에 추가되고 장면 프롬프트가 두 번째로 추가됩니다.

다음 목록은 Actions Builder에서 프롬프트를 정의할 수 있는 위치와 프롬프트가 프롬프트 대기열에 추가되는 순서를 간략하게 설명합니다.

  1. 진입 시
  2. 조건
  3. 슬롯 채우기
  4. 장면

기본 제공되는 대화 설계 권장사항

Dialogflow 프로젝트가 설정되면 기본 시작 인텐트와 마찬가지로 전역 대체 인텐트가 자동으로 생성됩니다. 사용자가 기존 인텐트와 일치시킬 수 없는 내용을 말하거나 사용자 입력이 없을 때 기본 대체 인텐트가 일치됩니다.

오류를 적절하게 처리하려면 각 대화 차례의 대체 인텐트에 후속 인텐트를 추가해야 합니다.

Actions Builder에서는 별도의 전역 인텐트 두 개(NO_MATCHNO_INPUT)가 새 프로젝트에 자동으로 포함됩니다.

어시스턴트 NLU가 NO_MATCH 또는 NO_INPUT 시스템 인텐트와 일치하면 각각의 기본 프롬프트 또는 맞춤설정된 프롬프트가 사용자에게 전송됩니다. NO_MATCH 또는 NO_INPUT가 3번 일치하면 각각의 최종 메시지가 사용자에게 전송되고 어시스턴트는 작업과의 대화를 종료합니다.

각 장면에 NO_MATCHNO_INPUT 핸들러 3개를 추가할 수 있습니다. 이 기능을 사용하면 일치 항목이 없거나 사용자의 입력이 없어 일반적인 대체 메시지가 표시되는 대신 특정 오류 처리를 위한 메시지를 맞춤설정할 수 있습니다.

그림 2. 단일 장면에 할당된 3개의 NO_MATCH 인텐트 핸들러