Dialogflow에서 Actions Builder로 프로젝트 이전

Dialogflow 개발자는 기존 작업을 Actions Builder로 이전하는 것이 좋습니다. 새로운 콘솔 내 방식을 사용하여 작업을 개발하면 여러 가지 이점이 있으며 기존 Dialogflow 프로젝트를 간편하게 이전할 수 있습니다. 이 페이지에서는 Dialogflow/Actions Builder 이전 도구를 사용하는 방법을 설명합니다.

이 가이드를 작성하기 전에 Dialogflow와 Actions Builder의 중요 개념과 차이점을 다룬 Dialogflow에서 Actions Builder로 이전 개요를 검토해야 합니다.

이전 도구의 기능

Dialogflow에서 Actions Builder로 이전 도구는 인텐트 및 항목과 같은 특정 Dialogflow 요소를 작업 빌더와 함께 작동하도록 변환합니다.

이전 도구는 다음 Dialogflow 요소를 Actions Builder로 자동 이전합니다.

  • 기본 호출로 마이그레이션되는 Dialogflow의 기본 시작 인텐트
  • 작업에서 지원하는 각 언어의 모든 학습 문구 및 항목입니다.
  • 입력 컨텍스트가 없는 인텐트. 전역 인텐트로 이전됩니다.
  • 장면과 인텐트로 마이그레이션되는 입력 컨텍스트가 하나인 인텐트
  • 하나의 입력 컨텍스트와 슬롯 채우기가 있는 인텐트는 두 개의 장면과 하나의 인텐트로 슬롯 채우기를 사용하여 장면으로의 전환을 처리합니다.
  • Dialogflow 대체, 미디어, 시작 이벤트를 사용하는 인텐트는 관련 Actions Builder 핸들러와 학습 문구가 있는 인텐트로 이어집니다.
  • Dialogflow 날짜 및 숫자 시스템 항목을 사용하는 인텐트로 인해 관련 Actions Builder 시스템 유형이 생성됩니다.

이전 도구는 다음 Dialogflow 요소를 처리하지 않습니다.

  • 여러 입력 컨텍스트가 있는 인텐트 장면은 수동으로 만들어야 합니다.
  • Dialogflow에서 커스텀 이벤트를 사용하는 인텐트
  • 날짜 또는 숫자가 아닌 Dialogflow 시스템 개체 이러한 항목은 새 유형으로 생성되지만 동의어는 수동으로 추가해야 합니다.
  • Dialogflow fulfillment 소스 코드입니다. API 버전 차이로 인해 이 코드는 Builder로 이전되지 않습니다.

이전 도구에 액세스

이전 도구에 액세스하려면 Actions 콘솔에서 Dialogflow 프로젝트를 열고 개발 > 작업으로 이동합니다.

Actions 콘솔에서 사용된 프로젝트를 잘 모르는 경우 Dialogflow 콘솔로 이동하여 다음 단계를 따르세요.

  1. 이전하려는 프로젝트를 열고 설정 아이콘을 클릭합니다.
  2. 일반 > 프로젝트 ID에서 작업(Action on Google) 링크를 클릭합니다. 그러면 특정 프로젝트의 Actions 콘솔로 이동합니다.
  3. 개발 > 작업으로 이동하여 이전 미리보기를 클릭합니다.

정보 슬라이드를 살펴보고 이전 시작을 클릭하여 이전 대시보드를 확인합니다.

이전 대시보드

이전 대시보드에는 이전 옵션뿐 아니라 이전할 항목과 관련된 정보도 표시됩니다.

이전 옵션

이전 도구에는 Dialogflow 프로젝트를 Actions Builder로 이전하는 두 가지 옵션이 있습니다.

  • 새 프로젝트로 이전 (권장)
    • 기존 Dialogflow 프로젝트를 그대로 유지하고 사본을 새 프로젝트로 이전합니다.
    • 표시 이름 및 디렉터리 정보는 기존 프로덕션 프로젝트와 연결된 상태로 유지됩니다. 실시간 프로젝트를 이전된 프로젝트로 덮어쓰는 방법은 권장 절차를 참고하세요.
  • 이 프로젝트 이전
    • 기존 Dialogflow 프로젝트를 대체하고 프로젝트에 정의한 기존 표시 이름과 어시스턴트 디렉터리 정보를 유지합니다.

마이그레이션 보고서

마이그레이션 보고서의 각 섹션을 펼쳐 다음 정보와 관련된 프로젝트별 세부정보를 표시할 수 있습니다.

  • 완전히 이전될 항목
  • 이전되지만 이전 후 추가 설정이 필요한 항목
  • 이전되지 않으며 직접 추가해야 하는 항목 (필요한 경우)
  • Dialogflow 프로젝트에서 사용하는 기능 중 Actions Builder에서 사용할 수 없는 기능

또한 이전 보고서를 다운로드하여 프로젝트를 이전 후 변경할 때 참고할 수 있습니다.

이전 후 설정

이전 도구는 Dialogflow 프로젝트의 중요한 부분을 Actions Builder로 이동하는 데 도움이 되는 반면, 이전되지 않은 전환, 프롬프트, 웹훅을 설정하려면 추가 개발이 필요합니다.

장면을 사용하도록 대화 흐름 업데이트

이전 도구는 입력 컨텍스트가 하나인 Dialogflow 인텐트를 기반으로 장면을 생성하지만 이는 일대일 관계가 아닙니다. 이전된 일부 장면은 새로운 대화 모델을 사용하는 경우 Actions Builder에 적합하지 않을 수 있습니다.

필요한 장면을 평가하여 대화 흐름을 재고해야 할 수 있습니다. 작업의 복잡성에 따라, 생성된 장면 중 더 이상 대화 흐름에 맞지 않는 경우 일부 장면을 삭제하는 것이 더 쉬울 수 있습니다.

전역 인텐트 검토 및 업데이트

입력 컨텍스트가 없는 Dialogflow 인텐트는 전역 인텐트로 Actions Builder에 이전됩니다. 전역 인텐트는 대화 전반에 걸쳐 활성화되므로 언제든지 일치시킬 수 있습니다.

전역 인텐트는 사용자가 작업을 호출할 때 사용자를 특정 흐름으로 딥 링크하는 데도 사용할 수 있습니다. 생성된 전역 인텐트가 활성 상태여야 하며 전역 범위의 사용자가 액세스할 수 있어야 하는지 확인하는 것이 중요합니다. 전역 인텐트를 일반 인텐트로 변경하려면 인텐트를 클릭하고 전역 인텐트 처리 옵션을 NO로 변경합니다.

유사한 학습 문구로 인텐트 통합

일부 인텐트가 매우 유사한 학습 문구를 공유하는 경우 인텐트를 하나의 일반 인텐트로 통합해야 합니다. 이렇게 하면 인텐트 일치의 정확성이 향상됩니다.

예를 들어 인텐트 A에는 다음과 같은 학습 문구가 있습니다.

  • "네, 준비되었는지 확인하고 싶어요."
  • "좋아요, 준비되었습니다"
  • "해 보자"

인텐트 B에는 다음과 같은 학습 문구가 있습니다.

  • "네, 준비되었는지 확인하고 싶어요."
  • "좋아요, 준비가 된 것 같아요."

두 인텐트 간의 학습 문구가 비슷하므로 인텐트 A인텐트 B를 보다 일반적인 인텐트 (인텐트 C)로 통합하고 원본을 삭제합니다. 인텐트 A 또는 인텐트 B를 참조한 장면에서 인텐트 C를 사용합니다.

인텐트 C에는 다음과 같은 학습 문구가 있습니다.

  • "네, 준비되었는지 확인하고 싶어요."
  • "좋아요, 준비되었습니다"
  • "해 보자"
  • "좋아요, 준비가 된 것 같아요."

이벤트 처리 업데이트

Dialogflow에서 특정 이벤트 (fallback, media, welcome)를 사용하는 인텐트의 경우 이전 도구는 해당 이벤트와 관련된 시스템 인텐트를 만듭니다. 동일한 Dialogflow 인텐트에 학습 문구가 있는 경우 동일한 학습 문구를 사용하여 추가 인텐트가 생성됩니다.

Actions Builder에서 이벤트 설정을 완료하려면 필요에 따라 전환과 웹훅 핸들러를 추가해야 합니다.

시스템 인텐트를 추가하여 대체 인텐트 처리

Dialogflow에서 대체 인텐트는 인텐트가 사용자의 입력을 인식하지 못하는 경우를 처리합니다. Actions Builder는 NO_MATCHNO_INPOUT 시스템 인텐트를 활용하여 이러한 사례를 처리합니다.

NO_MATCHNO_INPUT 시스템 인텐트는 모두 장면에 최대 3번 추가할 수 있습니다. 예를 들어 장면에 NO_MATCH 인텐트를 세 개 추가하면 작업이 사용자의 응답에서 찾고 있는 것에 관한 세부정보로 점진적으로 응답할 수 있습니다.

Dialogflow 프로젝트에서 대체 인텐트를 활용한 시스템 인텐트를 추가하는 것이 중요합니다. 흔히 사용되는 Actions Builder 시스템 인텐트의 예로는 NO_MATCHNO_INPUT가 있습니다. 이러한 시스템 인텐트에 관한 자세한 내용은 시스템 인텐트를 참고하세요.

주문 처리 전략 업데이트

Dialogflow 처리 코드를 Actions Builder로 이동하는 것은 이전 프로세스의 더 큰 작업 중 하나입니다. 웹훅 호출과 일반 처리의 개념은 동일하게 유지되지만 Actions Builder는 함수 재사용 옵션을 제공하고 웹훅 트리거 기회를 더 많이 추가합니다.

이 점을 염두에 두고 프로젝트의 처리를 다시 확인하여 Actions Builder의 기능을 활용하는 것이 좋습니다.

  • 커스텀 웹훅 핸들러 이름을 사용하면 서로 다른 장면의 여러 부분에서 동일한 웹훅 함수를 호출할 수 있습니다.
  • 장면 입력, 조건부 유효성 검사, 슬롯 채우기, 인텐트 매칭을 기반으로 웹훅 호출을 수행할 수 있습니다. 웹훅 호출 시점과 위치를 보다 세밀하게 제어할 수 있어 더욱 창의적인 처리 솔루션을 만들 수 있습니다.

처리 코드를 업데이트할 때 웹훅 호출을 트리거해야 하는 시점과 위치를 고려하세요. 웹훅 호출 옵션을 사용하여 장면의 두 개 이상에서 웹훅을 사용 설정할 수 있습니다. 웹훅 사용 설정에 대한 자세한 내용은 처리 이전 가이드의 웹훅 섹션을 참조하세요.

이전 예시

Dialogflow에서 Actions Builder로 이전된 프로젝트는 각 도구에서 사용하는 대화 모델의 차이로 인해 구조가 상당히 다릅니다. Actions Builder에서 장면, 프롬프트, 전환과 재사용 가능한 웹훅 핸들러와 같은 기능을 사용하면 마이그레이션된 프로젝트의 코드가 원본과 크게 달라집니다.

마이그레이션된 프로젝트를 비교하면 Dialogflow에서 Actions Builder로 마이그레이션할 때 필요한 변경의 유형과 범위를 파악할 수 있습니다. 다음과 같은 이전된 샘플 프로젝트를 검토하여 구현을 비교할 수 있습니다.

샘플 프로젝트 Dialogflow 코드 작업 빌더 코드
Google에 관한 사실 프로젝트 코드 프로젝트 코드
거래 프로젝트 코드 프로젝트 코드
계정 연결 프로젝트 코드 프로젝트 코드

이 섹션에서는 권장되는 이전 프로세스를 설명하고 현재 표시 (호출) 이름, 디렉터리 정보, 기록 분석을 유지할 수 있습니다.

이 프로세스에는 두 개의 다른 Actions Builder 프로젝트로 작업하는 것이 포함됩니다. 두 프로젝트 모두 동일한 Dialogflow 프로젝트에서 마이그레이션됩니다. 명확히 하기 위해 이러한 프로젝트를 다음과 같이 지칭합니다.

  • experimental: 이 프로젝트는 이전을 설정하고 테스트하는 데 사용됩니다.
  • original: 이 프로젝트는 현재 게시 중이며 사용자에게 제공되고 있습니다.

프로젝트를 이전하려면 다음 단계를 따르세요.

  1. Dialogflow의 내보내기 기능을 사용하여 Dialogflow 프로젝트의 백업을 만듭니다.
  2. Actions 콘솔로 이동하여 이전하려는 프로젝트를 엽니다.
  3. 개발 > 작업으로 이동하여 이전 미리보기를 클릭합니다.
  4. 정보 슬라이드를 클릭한 다음 이전 시작을 클릭합니다.
  5. 새 프로젝트로 이전을 선택합니다.
  6. 이전 보고서를 검토하고 필요한 경우 나중에 참조할 수 있도록 다운로드합니다.
  7. 이전을 클릭합니다.
  8. '실험' 프로젝트의 이름을 입력하고 프로젝트 만들기를 클릭합니다. 프로젝트 ID를 기록해 둡니다.
  9. 필요한 모든 이전 후 설정을 완료하고 작업이 의도한 대로 작동하는지 확인합니다.
  10. gactions CLI를 사용하여 '실험용' 프로젝트의 초안을 가져옵니다.

    gactions pull --project-id experimental-project-id

  11. Actions 콘솔에서 '원본' Dialogflow 프로젝트를 다시 엽니다.

  12. 개발 > 작업으로 이동하여 이전 미리보기를 클릭합니다.

  13. 이 프로젝트 이전을 선택합니다.

  14. 이전을 클릭합니다.

  15. 더보기 아이콘 > 프로젝트 설정을 클릭하고 프로젝트 ID를 기록합니다.

  16. 로컬 시스템에서 가져온 '실험' 프로젝트의 settings.yaml 파일을 열고 projectId를 '원본' 프로젝트의 프로젝트 ID로 바꿉니다.

  17. gactions CLI를 사용하여 로컬에 저장된 프로젝트의 초안을 푸시합니다.

    gactions push

  18. 알파 또는 베타 채널을 통해 게시하는 단계를 따르거나 프로덕션에 작업을 게시합니다.