Actions Builder를 사용하여 Google 어시스턴트용 작업 빌드하기(레벨1)

Google 어시스턴트 개발자 플랫폼을 사용하면 스마트 스피커, 스마트폰, 자동차, TV, 헤드폰 등 10억 대 이상의 기기에서 가상 개인 비서인 Google 어시스턴트의 기능을 확장하는 소프트웨어를 만들 수 있습니다. 사용자는 식료품 구매, 차량 예약과 같은 작업을 하기 위해 어시스턴트와 대화합니다. 개발자는 어시스턴트 개발자 플랫폼을 사용하여 사용자와 타사 처리 서비스 간의 즐겁고 효과적인 대화 환경을 쉽게 만들고 관리할 수 있습니다.

이 Codelab에서는 Google 어시스턴트 개발을 위한 초급 수준의 개념을 다루며 플랫폼을 사용해 본 경험이 없어도 됩니다. 이 Codelab에서는 신비로운 땅, 그리핀버그로의 여정을 시작하는 사용자에게 운세를 알려주는 Google 어시스턴트용 작업을 빌드합니다. Actions Builder 레벨2 Codelab에서는 사용자 입력에 따라 사용자의 운세를 맞춤설정하기 위해 여기에서 빌드한 작업을 업그레이드합니다.

빌드할 항목

이 Codelab에서는 다음과 같은 함수를 사용하여 간단한 작업을 빌드합니다.

  • 인사말 메시지로 사용자에게 응답
  • 사용자에게 질문. 사용자가 응답할 때 작업이 사용자의 선택에 맞게 적절히 응답
  • 사용자가 클릭하여 입력할 수 있는 추천 칩 제공
  • 신규 사용자인지 재사용자인지에 따라 인사 메시지 수정

이 Codelab을 통해 완성한 작업에는 다음과 같은 대화 흐름이 생성됩니다.

1c1e79902bed7230.png

18ef55647b4cb52c.png

학습할 내용

  • Actions 콘솔에서 프로젝트를 만드는 방법
  • 작업 호출 후 사용자에게 프롬프트를 보내는 방법
  • 사용자 입력을 처리하고 응답을 반환하는 방법
  • 작업 시뮬레이터에서 작업을 테스트하는 방법
  • Cloud Functions 편집기를 사용하여 처리를 구현하는 방법

필요한 항목

다음 도구가 갖추어진 환경이 필요합니다.

  • 웹브라우저(예: Chrome)

다음 섹션에서는 개발 환경을 설정하고 작업 프로젝트를 만드는 방법을 설명합니다.

Google 권한 설정 확인

이 Codelab에서 빌드하는 작업을 테스트하려면 시뮬레이터가 작업에 액세스할 수 있도록 필요한 권한을 사용 설정해야 합니다. 권한을 사용 설정하려면 다음 단계를 따르세요.

  1. 활동 제어 페이지로 이동합니다.
  2. 아직 Google 계정으로 로그인하지 않았다면 로그인합니다.
  3. 다음 권한을 사용 설정합니다.
  • 웹 및 앱 활동
  • 웹 및 앱 활동에서 Chrome 방문 기록 및 Google 서비스를 사용하는 사이트, 앱, 기기에서 이루어진 활동 포함 옆의 체크박스를 선택합니다.

작업 프로젝트 만들기

작업 프로젝트는 작업을 담는 컨테이너 역할을 합니다. 이 Codelab에서 사용할 작업 프로젝트를 만들려면 다음 단계를 따르세요.

  1. Actions 콘솔을 엽니다.
  2. New Project를 클릭합니다.
  3. 프로젝트 이름(예: actions-codelab)을 입력합니다. (내부 참고용 이름입니다. 나중에 프로젝트의 외부 이름을 설정할 수 있습니다.)

8cd05a84c1c0a32f.png

  1. Create Project를 클릭합니다.
  2. What kind of Action do you want to build? 화면에서 Custom 카드를 선택합니다.
  3. Next를 클릭합니다.
  4. Blank project 카드를 선택합니다.
  5. Start building을 클릭합니다.

결제 계정 연결

나중에 Cloud Functions를 사용하여 이 Codelab에서 처리를 배포하려면 결제 계정을 Google Cloud의 프로젝트와 연결해야 합니다. 이미 결제 계정이 있다면 다음 단계를 무시해도 됩니다.

결제 계정을 프로젝트에 연결하려면 다음 단계를 따르세요.

  1. Google Cloud Platform 결제 페이지로 이동합니다.
  2. 결제 계정 추가를 클릭합니다.
  3. 결제 정보를 입력하고 무료 평가판 시작하기 또는 결제 제출 및 사용 설정을 클릭합니다.
  4. 페이지 상단에서 내 프로젝트 탭을 클릭합니다.
  5. Codelab 작업 프로젝트 옆의 작업 아래에 있는 점 3개를 클릭합니다.
  6. 결제 변경을 클릭합니다.
  7. 드롭다운 메뉴에서 구성한 결제 계정을 선택합니다. 계정 설정을 클릭합니다.

요금이 청구되지 않도록 하려면 이 Codelab 끝에 있는 '다음 단계' 페이지에서 '프로젝트 정리' 섹션의 단계를 따르세요.

사용자는 호출을 통해 작업과 대화를 시작합니다. 예를 들어 MovieTime이라는 작업이 있고 MovieTime표시 이름이라면 사용자는 "Hey Google, MovieTime에 연결해 줘"와 같은 문장을 말해서 작업을 호출할 수 있습니다. 작업을 프로덕션으로 배포하기 위해서는 표시 이름이 필요하나 작업을 테스트하는 단계에서는 표시 이름을 정의하지 않아도 됩니다. 대신 시뮬레이터에서 "테스트 앱에 연결해 줘"라고 말하여 작업을 호출할 수 있습니다.

사용자가 작업을 호출한 후 발생하는 결과를 정의하려면 기본 호출을 수정해야 합니다.

호출이 트리거되면 기본적으로 Actions Builder에 일반적인 프롬프트('Start building your Action by defining main invocation.')가 표시됩니다.

다음 섹션에서는 Actions 콘솔에서 기본 호출에 대한 프롬프트를 맞춤설정합니다.

기본 호출 설정

사용자가 작업을 호출할 때 작업에서 사용자에게 보내는 프롬프트를 수정하려면 다음 단계를 따르세요.

  1. 탐색 메뉴에서 Main invocation을 클릭합니다.

966d037e1d7914df.png

  1. 코드 편집기에서 speech 필드(Start building your action...)의 텍스트를 다음 환영 메시지로 바꿉니다. A wondrous greeting, adventurer! Welcome to the mythical land of Gryffinberg! Based on your clothes, you are not from around these lands. It looks like you're on your way to an epic journey.
  1. Save를 클릭합니다.

시뮬레이터에서 기본 호출 테스트

Actions 콘솔은 작업을 테스트할 수 있는 웹 도구인 시뮬레이터를 제공합니다. 이 인터페이스는 하드웨어 기기 및 설정을 시뮬레이션하므로 스마트 디스플레이, 휴대전화, 스피커 또는 KaiOS에서 실행 중인 것처럼 작업과 상호작용할 수 있습니다.

이제 작업을 호출하면 추가한 맞춤설정 프롬프트('A wondrous greeting, adventurer!...')가 응답합니다.

시뮬레이터에서 작업의 기본 호출을 테스트하려면 다음 단계를 따르세요.

  1. 상단 탐색 메뉴에서 Test를 클릭하여 시뮬레이터로 이동합니다.
  2. 시뮬레이터에서 작업을 호출하려면 왼쪽 상단의 Input 필드에 Talk to my test app을 입력하고 Enter 키를 누릅니다.

656f5736af6a5a07.png

작업의 기본 호출을 트리거하면 어시스턴트가 맞춤설정된 환영 메시지로 응답합니다. 이때 어시스턴트가 인사로 응답하고 나면 대화가 종료됩니다. 다음 섹션에서는 대화가 이어지도록 작업을 수정해 보겠습니다.

이벤트 로그 보기

Test 탭에서는 오른쪽 패널에 이벤트 로그가 표시되며, 여기에서는 대화 기록을 이벤트 로그로 보여줍니다. 각 이벤트 로그는 대화가 이어지는 동안 발생하는 이벤트를 보여줍니다.

작업에는 현재 이벤트 로그가 하나 있으며 사용자의 입력("테스트 앱에 연결해 줘")과 작업의 응답을 모두 보여줍니다. 다음 스크린샷은 작업의 이벤트 로그를 보여줍니다.

443129bdcbecc593.png

이벤트 로그에서 아래쪽 화살표를 클릭하면 대화가 이루어진 시간순으로 정렬된 이벤트를 볼 수 있습니다.

  • userInput: 사용자의 입력("테스트 앱에 연결해 줘")에 해당합니다.
  • interactionMatch: 사용자의 입력으로 트리거된 작업의 기본 호출 응답에 해당합니다. 화살표를 클릭하여 이 행을 펼치면 기본 호출에 추가한 프롬프트(A wondrous greeting, adventurer!...)를 확인할 수 있습니다.
  • endConversation: Main invocation 인텐트에서 선택된 전환에 해당하며, 이것으로 현재 대화를 종료합니다. (전환에 관해서는 이 Codelab의 다음 섹션에서 자세히 알아봅니다.)

이벤트 로그는 작업의 진행 상태를 파악하는 데 활용할 수 있으며, 문제가 있을 경우 작업을 디버깅하는 경우 유용한 도구로 사용할 수도 있습니다. 이벤트 세부정보를 확인하려면 다음 스크린샷에 표시된 것처럼 이벤트 이름 옆의 화살표를 클릭합니다.

fcc389b59af5bef1.png

사용자가 작업을 호출한 후 발생하는 결과를 정의했으므로 이제 작업의 나머지 대화를 빌드할 수 있습니다. 이 Codelab을 계속하기 전에 작업의 대화가 어떻게 작동하는지 이해할 수 있도록 다음 용어를 숙지하시기 바랍니다.

작업에는 장면이 하나 이상 포함될 수 있으며 각 장면을 활성화해야 실행할 수 있습니다. (이 Codelab에서 빌드하는 작업에는 Start라는 하나의 장면만 있습니다.) 장면을 활성화하는 가장 일반적인 방법은 사용자 입력이 장면 내의 사용자 인텐트와 연결될 경우 해당 인텐트가 다른 장면으로의 전환을 트리거하고 활성화하도록 작업을 구성하는 것입니다.

예를 들어 사용자에게 동물에 관한 정보를 제공하는 가상의 작업이 있다고 가정해 보겠습니다. 사용자가 이 작업을 호출하면 Main invocation 인텐트와 연결되어 Facts.라는 장면으로의 전환이 트리거됩니다. 이 전환은 Facts 장면을 활성화하고, 이 장면은 사용자에게 다음 프롬프트를 전송합니다. Would you like to hear a fact about cats or dogs? Facts 장면 내에 Cat이라는 사용자 인텐트가 있으며 여기에는 "고양이에 관한 상식 알려 줘" 또는 "고양이"와 같이 사용자가 고양이에 관한 상식을 알아보기 위해 말할 수 있는 학습 문구가 포함됩니다. 사용자가 고양이에 관한 상식을 물으면 Cat 인텐트와 연결되고 Cat fact.라는 장면으로의 전환이 트리거됩니다. Cat fact 장면이 활성화되고 사용자에게 고양이 상식이 포함된 프롬프트가 전송됩니다.

a78f549c90c3bff6.png

그림 1. Actions Builder로 빌드된 작업의 일반적인 대화 흐름.

장면, 인텐트, 전환이 모여 대화의 로직을 이루며 작업의 대화에서 사용자가 진행할 수 있는 다양한 경로를 정의합니다. 다음 섹션에서는 장면을 만들고, 사용자가 작업을 호출한 후 장면이 활성화되는 방식을 정의합니다.

기본 호출에서 장면으로 전환

이 섹션에서는 사용자에게 프롬프트를 전송하여 운세를 듣고 싶은지 묻는 Start라는 새 장면을 만듭니다. 또한 기본 호출에서 새 Start 장면으로의 전환도 추가합니다.

Start 장면을 만들고 전환을 추가하려면 다음 단계를 따르세요.

  1. 상단 탐색 메뉴에서 Develop을 클릭합니다. 그런 다음 왼쪽 탐색 메뉴에서 Main invocation을 클릭합니다.
  2. 오른쪽의 Transition 섹션에서 드롭다운 메뉴를 클릭하고 텍스트 필드에 Start를 입력합니다.

29e12dff950a3bce.png

  1. Add를 클릭합니다. Start라는 장면을 만들고 사용자에게 환영 메시지를 전달한 후 Start 장면으로 전환하도록 작업에 지시합니다.
  2. 왼쪽 탐색 메뉴에서 Scenes를 클릭하여 장면 목록을 표시합니다.
  3. Scenes에서 Start를 클릭하여 Start 장면을 표시합니다.
  4. Start 장면의 On enter 섹션에서 +를 클릭합니다.
  5. Send prompt를 선택합니다.
  6. speech 필드(Enter the response that users will see or hear...)의 문장을 사용자에게 물어볼 질문(Before you continue on your quest, would you like your fortune told?)으로 바꿉니다.

3fc95466efd476f.png

  1. Save를 클릭합니다.

사용자가 Start 장면으로 들어가면 Google 어시스턴트가 사용자에게 이 프롬프트(Before you continue on your quest...)를 제공합니다.

추천 칩 추가

추천 칩은 클릭 가능한 추천 검색어를 사용자에게 제공하며, 작업은 이 추천 검색어를 사용자 입력으로 처리합니다. 이 섹션에서는 화면을 통해 기기에서 사용자를 지원하기 위해 방금 구성한 프롬프트(Before you continue on your quest, would you like your fortune told?) 아래에 표시할 추천 칩을 추가합니다.

Start 장면의 프롬프트에 추천 칩을 추가하려면 다음 단계를 따르세요.

  1. Start 장면에서 코드 편집기 아래의 suggestions를 클릭합니다. 이 작업을 통해 하나의 추천 칩이 추가됩니다.
  2. title 필드에서 Suggested Response'Yes'로 바꿉니다.
  3. 동일한 형식을 사용하여 'No'라는 추천 칩을 직접 추가합니다. 코드는 다음 스니펫과 같아야 합니다.
    suggestions:
      - title: 'Yes'
      - title: 'No'
  1. Save를 클릭합니다.

2d13c2ada791ec26.png

시뮬레이터에서 작업 테스트

이때 작업은 기본 호출에서 Start 장면으로 전환되고, 사용자에게 운세를 듣고 싶은지를 묻습니다. 추천 칩은 시뮬레이션된 디스플레이에도 나타나야 합니다.

시뮬레이터에서 작업을 테스트하려면 다음 단계를 따르세요.

  1. 탐색 메뉴에서 Test를 클릭하여 시뮬레이터로 이동합니다.
  2. 시뮬레이터에서 작업을 테스트하려면 Input 필드에 Talk to my test app을 입력합니다.
  3. Enter를 누릅니다. 작업이 Main invocation 프롬프트와 추가된 Start 장면 프롬프트인 'Before you continue on your quest, would you like your fortune told?'로 응답해야 합니다.

다음 스크린샷은 이러한 상호작용을 보여줍니다.

3c2013ebb2da886a.png

  1. Yes 또는 No 추천 칩을 클릭하여 프롬프트에 응답합니다. ("맞아" 또는 "아니야"라고 말하거나 Input 필드에 Yes 또는 No를 입력할 수도 있습니다.)

프롬프트에 응답하면 작업이 입력을 이해할 수 없다는 내용의 메시지('Sorry, I didn't catch that. Can you try again?')로 응답합니다. 아직 'Yes' 또는 'No' 입력을 이해하고 이에 응답하도록 작업을 구성하지 않았으므로 작업은 입력을 NO_MATCH 인텐트와 연결합니다.

기본적으로 NO_MATCH 시스템 인텐트는 일반적인 응답을 제공하지만 응답을 맞춤설정하여 응답을 이해하지 못했음을 사용자에게 알릴 수 있습니다. 어시스턴트는 사용자 입력 연결을 세 번 시도한 후 작업에서 사용자의 대화를 종료합니다.

yesno 인텐트 추가

이제 작업이 제시하는 질문에 사용자가 응답할 수 있으므로 사용자의 응답('Yes' 또는 'No')을 이해하도록 작업을 구성할 수 있습니다. 다음 섹션에서는 사용자가 'Yes' 또는 'No'라고 말할 때 연결할 사용자 인텐트를 만들고 이러한 인텐트를 Start 장면에 추가합니다.

yes 인텐트 만들기

yes 인텐트를 만들려면 다음 단계를 따르세요.

  1. 탐색 메뉴에서 Develop을 클릭합니다.
  2. 탐색 메뉴에서 Intents를 클릭하여 인텐트 목록을 엽니다.
  3. 인텐트 목록 끝에 있는 +(더하기 기호)를 클릭합니다. 새 인텐트의 이름을 yes로 지정하고 Enter 키를 누릅니다.
  4. yes 인텐트를 클릭하여 yes 인텐트 페이지를 엽니다.
  5. Add training phrases 섹션에서 Enter Phrase 텍스트 상자를 클릭하고 다음 문구를 입력합니다.
  • Yes
  • Y
  • I would
  • Tell me

98440276cb9e7de8.png

  1. Save를 클릭합니다.

Start 장면에 yes 인텐트 추가

이제 사용자가 'yes' 인텐트를 표현하는 경우 작업에서 이를 이해할 수 있습니다. 사용자가 Start 프롬프트('Before you continue on your quest, would you like your fortune told?')에 응답하므로 개발자는 yes 사용자 인텐트를 Start 장면에 추가할 수 있습니다.

yes 사용자 인텐트를 Start 장면에 추가하려면 다음 단계를 따르세요.

  1. 탐색 메뉴에서 Start 장면을 클릭합니다.
  2. User intent handling 옆에 있는 Start 장면에서 +(더하기 기호)를 클릭합니다.
  3. 인텐트 드롭다운에서 yes를 선택합니다.

681928e3d71abdbf.png

  1. Send prompts를 클릭하고 speech 필드를 다음 텍스트로 업데이트합니다. Your future depends on the aid you choose to use for your quest. Choose wisely! Farewell, stranger.

편집기의 코드는 다음 스니펫과 같아야 합니다.

 candidates:
  - first_simple:
      variants:
        - speech: >-
            Your future depends on the aid you choose to use for your quest. Choose
            wisely! Farewell, stranger.
  1. Transition 섹션에서 드롭다운 메뉴를 클릭하고 End conversation을 선택합니다.
  2. Save를 클릭합니다.

시뮬레이터에서 yes 인텐트 테스트

이때 작업은 사용자가 운세를 듣길 원하는지 이해하고 적절한 응답을 반환합니다.

시뮬레이션에서 이 인텐트를 테스트하려면 다음 단계를 따르세요.

  1. 탐색 메뉴에서 Test를 클릭합니다.
  2. 시뮬레이터에서 작업을 테스트하려면 Input 필드에 Talk to my test app을 입력하고 Enter 키를 누릅니다.
  3. Input 필드에 Yes를 입력하고 Enter 키를 누릅니다. 또는 Yes 추천 칩을 클릭합니다.

f131998710d8ffd8.png

작업이 사용자에게 응답하며 운세는 사용자가 선택하는 도우미에 따라 달라진다고 말합니다. 이제 yes 인텐트의 End conversation 전환이 구성되었으므로 작업이 세션을 종료합니다.

no 인텐트 만들기

이제 사용자가 운세를 듣길 원하지 않을 경우 작업에서 이를 이해하고 이에 응답할 수 있도록 no 인텐트를 만들 수 있습니다. no 인텐트를 만들려면 다음 단계를 따르세요.

  1. 탐색 메뉴에서 Develop을 클릭합니다.
  2. 탐색 메뉴에서 Intents를 클릭하여 인텐트 목록을 엽니다.
  3. 인텐트 목록 끝에 있는 +(더하기 기호)를 클릭합니다. 새 인텐트의 이름을 no로 지정하고 Enter 키를 누릅니다.
  4. no를 클릭하여 no 인텐트 페이지를 엽니다.
  5. Add training phrases 섹션에서 Enter Phrase 텍스트 상자를 클릭하고 다음 문구를 입력합니다.
  • No
  • N
  • I don't want
  • nope

2e7b8fd57eac94c5.png

  1. Save를 클릭합니다.

Start 장면에 no 인텐트 추가

이제 사용자가 "아닌데" 또는 "아니"와 같이 "아니야"와 비슷한 표현을 하는 경우 작업에서 이를 이해할 수 있습니다. 사용자가 Start 프롬프트('Before you continue on your quest, would you like your fortune told?')에 응답하므로 no 사용자 인텐트를 Start 장면에 추가해야 합니다.

Start 장면에 no 인텐트를 추가하려면 다음 단계를 따르세요.

  1. 탐색 메뉴에서 Start 장면을 클릭합니다.
  2. User intent handling 옆에 있는 Start 장면에서 +(더하기 기호)를 클릭합니다.
  3. Intent 섹션의 드롭다운에서 no를 선택합니다.

4aa558abdecb3121.png

  1. Send prompts를 클릭하고 speech 필드를 다음 텍스트로 업데이트합니다. I understand, stranger. Best of luck on your quest! Farewell

편집기의 코드는 다음 스니펫과 같아야 합니다.

 candidates:
  - first_simple:
      variants:
        - speech: >-
             I understand, stranger. Best of luck on your quest! Farewell.
  1. Transition 섹션의 드롭다운에서 End conversation을 선택합니다.
  2. Save를 클릭합니다.

시뮬레이터에서 no 인텐트 테스트

이때 사용자가 운세를 듣고 싶지 않을 경우 작업이 이를 이해하고 적절한 응답을 반환합니다.

시뮬레이션에서 이 인텐트를 테스트하려면 다음 단계를 따르세요.

  1. 탐색 메뉴에서 Test를 클릭합니다.
  2. Input 필드에 Talk to my test app를 입력하고 Enter 키를 누릅니다.
  3. Input 필드에 No를 입력하고 Enter 키를 누릅니다. 또는 No 추천 칩을 클릭합니다.

c0c8b04066577eb2.png

사용자에게 운세를 알려주는 대신 작업이 여정에 행운이 깃들기를 기원해 줍니다. 이제 no 인텐트의 End conversation 전환이 구성되었으므로 작업이 세션을 종료합니다.

현재 작업의 응답은 정적입니다. 프롬프트가 포함된 장면이 활성화되면 작업이 그때마다 동일한 프롬프트를 전송하기 때문입니다. 이 섹션에서는 동적 대화 응답을 구성하는 로직이 포함된 처리를 구현합니다.

처리는 사용자가 재사용자인지 신규 사용자인지를 식별하고 재사용자에게 표시할 작업의 인사 메시지를 수정합니다. 재사용자에게 표시되는 인사 메시지는 다음과 같이 간소화되며 사용자가 재방문자라는 사실을 알고 있음을 드러냅니다. 'A wondrous greeting, adventurer! Welcome back to the mythical land of Gryffinberg!'

이 Codelab에서는 Actions 콘솔의 Cloud Functions 편집기를 사용하여 처리 코드를 수정하고 배포합니다.

작업이 호출 중 또는 장면 실행의 특정 부분에서 발생한 이벤트의 처리를 알리는 웹훅을 트리거할 수 있습니다. 웹훅이 트리거되면 작업이 이벤트 처리에 사용할 핸들러의 이름과 함께 JSON 페이로드가 포함된 요청을 처리로 전송합니다. 이 핸들러는 일부 로직을 진행하고 해당 JSON 응답을 반환합니다.

처리 빌드

이제 처리를 수정하여 재사용자와 신규 사용자가 작업을 호출할 때 서로 다른 프롬프트를 생성합니다.

처리에 로직을 추가하려면 다음 단계를 따르세요.

  1. 탐색 메뉴에서 Develop을 클릭합니다.
  2. 탐색 메뉴에서 Webhook 탭을 클릭합니다.
  3. Inline Cloud Functions를 선택하고 Confirm을 클릭합니다. index.jspackage.json 파일에 상용구 코드가 자동으로 추가됩니다.

d4702f1de6404285.png

  1. index.js의 내용을 다음 코드로 바꿉니다.

index.js

const { conversation } = require('@assistant/conversation');
const functions = require('firebase-functions');

const app = conversation({debug: true});

app.handle('greeting', conv => {
 let message = 'A wondrous greeting, adventurer! Welcome back to the mythical land of Gryffinberg!';
 if (!conv.user.lastSeenTime) {
   message = 'Welcome to the mythical land of  Gryffinberg! Based on your clothes, you are not from around these lands. It looks like you\'re on your way to an epic journey.';
 }
 conv.add(message);
});

exports.ActionsOnGoogleFulfillment = functions.https.onRequest(app);
  1. Save Fulfillment를 클릭합니다.
  2. Deploy Fulfillment를 클릭합니다.

Cloud Functions가 처리를 프로비저닝하고 배포할 때까지 몇 분 정도 기다립니다. 코드 편집기 위에 Cloud Function deployment is progress...라는 메시지가 표시됩니다. 코드가 성공적으로 배포되면 메시지가 Your Cloud Function deployment is up to date로 업데이트됩니다.

코드 이해

처리는 Node.js용 Actions on Google 처리 라이브러리를 사용하며 Google 어시스턴트의 HTTP 요청에 응답합니다.

이전 코드 스니펫에서 greeting 핸들러를 정의합니다. 그러면 핸들러가 lastSeenTime 속성을 확인하여 사용자가 작업을 이용한 적이 있는지 파악합니다. lastSeenTime이 정의되어 있지 않은 경우 신규 사용자이며 greeting 핸들러가 신규 사용자 인사말을 제공합니다.

기본 호출을 업데이트하여 웹훅 트리거

greeting 함수를 정의했으니 이제 사용자가 작업을 호출하면 작업이 이 함수를 불러올 수 있도록 기본 호출 인텐트에서 greeting 이벤트 핸들러를 구성할 수 있습니다.

새로운 greeting 핸들러를 호출하는 작업을 구성하려면 다음 단계를 따르세요.

  1. 탐색 메뉴에서 Main invocation을 클릭합니다.
  2. Send prompt를 삭제하고 Call your webhook을 선택합니다.
  3. 텍스트 상자에 greeting을 추가합니다.

a803afe4f7375a97.png

  1. Save를 클릭합니다.

시뮬레이터에서 업데이트된 기본 호출 테스트

시뮬레이터에서 작업을 테스트하려면 다음 단계를 따르세요.

  1. 탐색 메뉴에서 Test를 클릭하여 시뮬레이터로 이동합니다.
  2. 시뮬레이터에서 작업을 테스트하려면 Input 필드에 Talk to my test app을 입력하고 Enter 키를 누릅니다.

앞서 이 Codelab에서 작업을 테스트했으므로 신규 사용자가 아니라 판단하여 다음과 같이 간략한 인사말이 표시됩니다. 'A wondrous greeting, adventurer! Welcome back to the mythical land of Gryffinberg!...'

축하합니다.

Google 어시스턴트 작업을 빌드하는 방법에 관한 기본 지식을 배웠습니다.

학습한 내용

  • Actions 콘솔에서 작업 프로젝트를 설정하는 방법
  • 사용자가 작업과 대화를 시작할 수 있도록 기본 호출에 프롬프트를 추가하는 방법
  • 장면, 인텐트, 전환, 추천 칩, 처리가 포함된 대화 인터페이스를 만드는 방법
  • 작업 시뮬레이터에서 작업을 테스트하는 방법

추가 학습 자료

Google 어시스턴트용 작업을 빌드하는 방법을 자세히 알아보려면 다음 리소스를 살펴보세요.

Twitter에서 @ActionsOnGoogle을 팔로우하여 최신 소식을 확인하고 #AoGDevs를 포함한 트윗으로 빌드한 결과물을 공유헤 보세요.

프로젝트 정리[권장]

요금이 청구되지 않도록 하려면 사용하지 않을 프로젝트를 삭제하는 것이 좋습니다. 이 Codelab에서 만든 프로젝트를 삭제하려면 다음 단계를 따르세요.

  1. Cloud 프로젝트 및 리소스를 삭제하려면 Shutting down (deleting) projects 섹션에 나열된 단계를 완료하세요.
  1. 선택사항: Actions 콘솔에서 프로젝트를 즉시 삭제하려면 프로젝트 삭제 섹션에 나열된 단계를 완료하세요. 이 단계를 완료하지 않으면 프로젝트가 약 30일 후에 자동으로 삭제됩니다.

의견 설문조사

종료하기 전에 간단한 설문조사에 참여해 주세요.