arrow_back

가상 에이전트에 전화 게이트웨이 추가

가입 로그인
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

가상 에이전트에 전화 게이트웨이 추가

Lab 1시간 30분 universal_currency_alt 크레딧 5개 show_chart 중급
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP793

Google Cloud 사용자 주도형 실습

개요

이 실습에서는 가상 에이전트 빌드 fulfillment 실습에서 생성한 Pigeon Travel 가상 에이전트 작업을 계속 진행하고 사용자가 가상 에이전트에 전화를 걸 수 있도록 전화 게이트웨이를 추가해 보겠습니다. 먼저 에이전트용 대화 흐름 설계 실습을 완료하는 것이 좋지만 필수 사항은 아닙니다.

참고: 이 실습을 계속하려면 에이전트용 대화 흐름 설계 실습에서 내보낸 에이전트 ZIP 파일이 필요합니다. 에이전트 ZIP 파일이 없으면 이 실습에서 단계를 진행하기 전에 에이전트용 대화 흐름 설계 실습의 모든 인텐트와 항목을 처음부터 다시 빌드해야 합니다.

Contact Center AI는 기존 전화 기술과 쉽게 통합되도록 설계되었습니다. 전화 게이트웨이를 만들려면 전화 파트너에 액세스할 수 있어야 하며 이 실습에서는 이러한 액세스 권한을 제공합니다. 프로덕션 용도로 사용하려면 이 파트너 중 하나와 협력하는 것이 좋습니다.

학습 목표

이 실습에서는 다음을 수행하는 방법에 대해 알아봅니다.

  • 기본 시작 인텐트 업데이트
  • 사용자가 가상 에이전트에 전화를 걸 수 있도록 전화 게이트웨이 추가
  • 전화 게이트웨이를 사용하여 사용자 이전

설정 및 요건

실습 시작 버튼을 클릭하기 전에

다음 안내를 확인하세요. 실습에는 시간 제한이 있으며 일시중지할 수 없습니다. 실습 시작을 클릭하면 타이머가 시작됩니다. 이 타이머에는 Google Cloud 리소스를 사용할 수 있는 시간이 얼마나 남았는지 표시됩니다.

실무형 실습을 통해 시뮬레이션이나 데모 환경이 아닌 실제 클라우드 환경에서 직접 실습 활동을 진행할 수 있습니다. 실습 시간 동안 Google Cloud에 로그인하고 액세스하는 데 사용할 수 있는 새로운 임시 사용자 인증 정보가 제공됩니다.

이 실습을 완료하려면 다음을 준비해야 합니다.

  • 표준 인터넷 브라우저 액세스 권한(Chrome 브라우저 권장)
참고: 이 실습을 실행하려면 시크릿 모드 또는 시크릿 브라우저 창을 사용하세요. 개인 계정과 학생 계정 간의 충돌로 개인 계정에 추가 요금이 발생하는 일을 방지해 줍니다.
  • 실습을 완료하기에 충분한 시간---실습을 시작하고 나면 일시중지할 수 없습니다.
참고: 계정에 추가 요금이 발생하지 않도록 하려면 개인용 Google Cloud 계정이나 프로젝트가 이미 있어도 이 실습에서는 사용하지 마세요.

실습을 시작하고 Google Cloud 콘솔에 로그인하는 방법

  1. 실습 시작 버튼을 클릭합니다. 실습 비용을 결제해야 하는 경우 결제 수단을 선택할 수 있는 팝업이 열립니다. 왼쪽에는 다음과 같은 항목이 포함된 실습 세부정보 패널이 있습니다.

    • Google 콘솔 열기 버튼
    • 남은 시간
    • 이 실습에 사용해야 하는 임시 사용자 인증 정보
    • 필요한 경우 실습 진행을 위한 기타 정보
  2. Google 콘솔 열기를 클릭합니다. 실습에서 리소스가 가동된 후 로그인 페이지가 표시된 다른 탭이 열립니다.

    팁: 두 개의 탭을 각각 별도의 창으로 나란히 정렬하세요.

    참고: 계정 선택 대화상자가 표시되면 다른 계정 사용을 클릭합니다.
  3. 필요한 경우 실습 세부정보 패널에서 사용자 이름을 복사하여 로그인 대화상자에 붙여넣습니다. 다음을 클릭합니다.

  4. 실습 세부정보 패널에서 비밀번호를 복사하여 시작 대화상자에 붙여넣습니다. 다음을 클릭합니다.

    중요: 왼쪽 패널에 표시된 사용자 인증 정보를 사용해야 합니다. Google Cloud Skills Boost 사용자 인증 정보를 사용하지 마세요. 참고: 이 실습에 자신의 Google Cloud 계정을 사용하면 추가 요금이 발생할 수 있습니다.
  5. 이후에 표시되는 페이지를 클릭하여 넘깁니다.

    • 이용약관에 동의합니다.
    • 임시 계정이므로 복구 옵션이나 2단계 인증을 추가하지 않습니다.
    • 무료 평가판을 신청하지 않습니다.

잠시 후 Cloud 콘솔이 이 탭에서 열립니다.

참고: 왼쪽 상단에 있는 탐색 메뉴를 클릭하면 Google Cloud 제품 및 서비스 목록이 있는 메뉴를 볼 수 있습니다. 탐색 메뉴 아이콘

API 사용 설정

  1. Cloud 콘솔에서 탐색 메뉴 > API 및 서비스 > 사용 설정된 API 및 서비스로 이동합니다.

  2. + API 및 서비스 사용 설정을 클릭합니다.

  3. Dialogflow를 검색합니다.

  4. Dialogflow API를 클릭하고 API가 사용 설정되어 있지 않으면 사용 설정을 클릭합니다.

작업 1. Dialogflow 에이전트 만들기

에이전트 이름으로 'pigeon-travel'을 사용합니다.

  1. Dialogflow 콘솔로 이동합니다.

  2. Google 버튼으로 로그인하고 이 실습에 로그인할 때 사용한 실습 사용자 인증 정보를 선택합니다.

  3. 서비스 약관을 확인합니다. 동의를 클릭합니다.

  4. 에이전트 만들기를 클릭합니다.

  5. 이제 에이전트 정보를 추가합니다.

    • 에이전트 이름: pigeon-travel
    • 기본 시간대: America/Denver
    • Google 프로젝트: 실습 프로젝트 ID 사용
  6. 만들기를 클릭합니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. Dialogflow 에이전트 만들기

작업 2. Dialogflow 에이전트 가져오기

이전 실습에서는 빌드한 Dialogflow 에이전트를 내보냈습니다. 이제는 다시 가져와서 빌드해 보겠습니다.

내보낸 파일이 없다면 pigeon-travel-gsp-793.zip 파일을 사용합니다.

참고: 이 파일에 액세스하는 동안 403 오류가 발생하면 실습을 시작할 때 제공된 계정으로 파일에 액세스하고 있는지 확인하세요. 새 창을 열고 실습 사용자 인증 정보로 로그인한 다음 새 창에 링크를 붙여넣습니다.

파일을 로컬 워크스테이션에 다운로드합니다.

그러면 새 가상 에이전트 프로젝트가 생성됩니다. 이제 이미 수행한 작업을 가져올 차례입니다.

  1. 에이전트 이름 옆에 있는 설정 톱니바퀴 아이콘(설정 톱니바퀴 아이콘)을 클릭합니다.

  2. 내보내기 및 가져오기 탭을 선택합니다.

  3. ZIP 파일에서 가져오기를 클릭합니다.

  4. 파일 선택을 클릭하고 가상 에이전트의 구성이 포함된 ZIP 파일로 이동합니다. 파일을 드래그 앤 드롭해도 됩니다.

  5. 'IMPORT'라는 단어를 전부 대문자로 입력하여 가져오기 버튼을 사용 설정하고 가져오기를 클릭합니다.

에이전트 업로드 창

  1. 가져오기가 완료되면 완료를 클릭하여 업로드 창을 닫습니다.

기존 구성을 새 에이전트 프로젝트로 가져왔습니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. Dialogflow 에이전트 가져오기

작업 3. 전화 게이트웨이 설정

게이트웨이를 설정하려면 다음 단계를 따르세요.

  1. 제공업체를 선택합니다. Dialogflow 콘솔에서 다음 안내를 따르세요.

    • pigeon-travel 에이전트를 선택합니다.
    • 통합을 클릭합니다.

    강조 표시된 통합 옵션

    • Dialogflow Phone Gateway를 클릭합니다.
  2. 전화 게이트웨이를 다음과 같이 구성합니다.

    • 언어를 선택합니다. 이 실습에서는 영어를 선택합니다.
    • 전화번호의 국가 코드를 선택합니다. 이 실습에서는 미국 국가 코드인 +1을 선택합니다.
    • 다음을 클릭합니다.

    Dialogflow Phone Gateway. 1단계: 전화 게이트웨이 구성

  3. 번호를 선택합니다.

    • 목록에서 전화번호를 선택합니다.
    • 만들기를 클릭합니다.

    Dialogflow Phone Gateway. 2단계: 전화번호 선택

  4. 완료합니다.

    • 이제 게이트웨이를 사용할 수 있습니다.
    • 표시된 전화번호를 저장하고 대화상자 창을 닫습니다. Dialogflow Phone Gateway 통합 버튼을 다시 클릭하여 이 정보를 가져올 수 있습니다.

    Dialogflow Phone Gateway 수고하셨습니다 배너

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. 전화 게이트웨이 설정하기

작업 4. 발신자 환영 메시지

이제 작동하는 전화 게이트웨이 에이전트가 있으므로 가져온 인텐트를 살펴봅니다. 이렇게 하면 자체 전화 게이트웨이 에이전트의 빌드 방법을 이해하는 데 도움이 됩니다.

다음 단계에 따라 발신자를 맞이하고 가능한 옵션 목록을 제공합니다.

  1. Dialogflow 콘솔로 이동합니다.

  2. 에이전트를 선택합니다.

  3. 인텐트를 클릭합니다.

  4. 기본 시작 인텐트를 클릭합니다.

  5. 이벤트 섹션까지 아래로 스크롤합니다. 시작(WELCOME) 및 전화 시작(TELEPHONY_WELCOME) 이벤트가 모두 있습니다. 전화 시작(TELEPHONY_WELCOME)이 없는 경우 추가합니다. 이벤트 섹션에서 전화 시작을 입력하고 Enter를 누릅니다.

시작 이벤트 및 전화 시작 이벤트가 포함된 이벤트 섹션

전화 시작(TELEPHONY_WELCOME) 이벤트는 모든 시작 이벤트 유형에서 이 인텐트를 트리거합니다. 또는 특정 시작 이벤트 전용으로 별도의 각 인텐트를 만들 수도 있습니다.

  1. 응답 섹션까지 아래로 스크롤하고 더하기 아이콘을 클릭하여 Dialogflow Phone Gateway 탭을 추가합니다.

Dialogflow Phone Gateway 탭 페이지

  1. 응답 추가를 클릭하고 음성 합성을 선택합니다.

  2. 텍스트 필드에 다음을 입력합니다.

Hello! I am the virtual agent for Pigeon Travel. I can help you with many things such as changing your name on your reservation. How can I help you?

  1. 기본값 탭의 응답을 첫 번째 응답으로 사용을 사용 안함으로 전환합니다.

'기본값 탭의 응답을 첫 번째 응답으로 사용' 슬라이더

  1. 저장을 클릭합니다.

  2. 이제 해당 번호로 전화를 걸어 커스텀 응답을 들을 수 있습니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. 발신자 환영 메시지

작업 5. Cloud Functions를 사용하여 fulfillment를 설정하고 Firestore에서 예약 조회

이 섹션에서는 에이전트가 현재 예약을 조회하고 변경사항을 추가할 수 있도록 에이전트의 Firestore를 설정합니다.

Firestore 구성

  1. 콘솔에서 탐색 메뉴 > Firestore로 이동합니다.

  2. 데이터베이스 만들기를 클릭합니다.

  3. 두 가지 옵션, 즉 Native 모드 또는 Datastore 모드가 제공됩니다. Native 모드 선택을 고릅니다.

  4. 위치에서 을(를) 선택합니다.

  5. 데이터베이스 만들기를 클릭합니다. 완료되면 새 컬렉션을 만들 수 있습니다.

  6. 컬렉션 시작을 클릭합니다.

    • 컬렉션 ID: reservations

    • 문서 ID: 100

  7. 세부정보를 입력하여 아래 세부정보를 복제한 다음 저장을 클릭합니다.

    • 필드 이름: fname
    • 필드 유형: string
    • 필드 값: Isabel

    그런 다음 + 필드 추가 버튼을 클릭해 다른 필드를 추가합니다.

    • 필드 이름: lname
    • 필드 유형: string
    • 필드 값: Costa

    그런 다음 + 필드 추가 버튼을 클릭해 다른 필드를 추가합니다.

    • 필드 이름: newname
    • 필드 유형: string
    • 필드 값:
  8. 저장을 클릭합니다.

이제 첫 번째 문서를 Firestore 컬렉션에 추가했습니다.

Firestore 문서 ID 권장사항

  • 문서 ID로 . 또는 ..를 사용하지 않습니다.

  • 문서 ID에 슬래시(/)를 사용하지 않습니다.

  • 다음과 같이 단조롭게 증가하는 문서 ID를 사용하지 않습니다.

    • Customer1, Customer2, Customer3, ...
    • Product 1, Product 2, Product 3, ...

    이러한 순차 ID를 사용하면 지연에 영향을 미치는 부하 집중이 발생할 수 있습니다.

Dialogflow Fulfillment

  1. Cloud 콘솔에서 Cloud Functions로 이동합니다.

  2. 함수 만들기를 클릭합니다.

  3. 환경에서 1st gen를 사용합니다.

  4. 함수 이름에서 dialogflowFirebaseFulfillment를 사용합니다.

  5. 리전에서 을(를) 사용합니다.

  6. 트리거에서 HTTP를 사용합니다. 인증 필요 체크박스를 선택하고 HTTPS 필요를 선택합니다.

  7. 저장다음을 차례대로 클릭합니다.

이전 실습에서 Cloud 함수 소스 코드를 다운로드했으므로 이제 이 코드를 새로 배포된 Cloud 함수에 업로드합니다.

  1. 코드 페이지의 런타임에서 Node.js 10을 선택합니다.

  2. 소스 코드 드롭다운에서 Cloud Storage의 ZIP을 선택합니다.

강조 표시된 Cloud Storage의 ZIP 옵션

  1. Cloud Storage의 ZIP에 다음 위치를 입력합니다. qwiklabs-resources-ccai-quest/pigeon-travel-gsp-793-cloud-function.zip

  2. 진입점에서 dialogflowFirebaseFulfillment를 사용합니다.

Cloud Storage의 ZIP 텍스트 필드

  1. 배포를 클릭합니다.

완료되면 이전 실습의 코드가 fulfillment Cloud 함수에 배포됩니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. Cloud Functions를 사용하여 fulfillment 설정하기

작업 6. 전화 걸기

  • 자신의 전화기로 전화 게이트웨이에 할당된 번호로 전화를 겁니다.

환영 메시지 후 가상 에이전트에게 예약 시 이름을 변경하도록 요청하여 대화 흐름을 시작합니다. 의도대로 작동되면 Firestore에서 가상 에이전트에 지정한 이름으로 설정된 새 이름을 볼 수 있습니다.

작업 7. 실제 상담사로 대체

잘 진행되지 않으면 어떻게 되나요? 사용자가 잘못된 예약 번호를 제공한 경우 어떻게 해야 할까요? 이 경우 Dialogflow Phone Gateway 통화 연결 옵션을 사용합니다.

이벤트를 사용하여 인텐트를 트리거할 것이므로 시작하기 전에 이벤트에 대해 대략적으로 읽어보시기 바랍니다.

이벤트

일반적으로 인텐트는 최종 사용자 표현이 인텐트 학습 문구와 일치할 때 일치됩니다. 하지만 이벤트를 사용하여 인텐트를 트리거할 수도 있습니다. 다양한 방법으로 이벤트를 호출할 수 있습니다.

이벤트에는 두 가지 유형이 있습니다.

  • 플랫폼 이벤트: 이러한 기본 제공 이벤트는 플랫폼 통합에서 제공됩니다. 플랫폼별로 이벤트가 발생할 때 호출됩니다. 예를 들어 최종 사용자가 자신의 위치에 대한 요청을 수락하거나 거부하면 Facebook 통합에서 이벤트를 호출합니다.

  • 커스텀 이벤트: 개발자가 정의하는 이벤트입니다. fulfillment 또는 API를 사용하여 이 이벤트를 호출할 수 있습니다. 예를 들어 특정 시간에 이벤트를 호출하는 시간 알림을 대화 중에 설정할 수 있습니다. 이 이벤트는 최종 사용자에게 무언가를 알리는 인텐트를 트리거할 수 있습니다.

커스텀 이벤트를 사용하여 통화 연결을 트리거합니다.

fulfillment 코드 수정

  1. 함수 세부정보 페이지에서 수정을 클릭합니다.

  2. 코드 편집기 탭으로 이동합니다.

  3. 다음 코드를 교체한 다음 배포합니다.

agent.add('I could not find your reservation.');

다음 코드로 교체합니다.

agent.add('placeholder'); agent.setFollowupEvent('custom_fallback');
  1. 다음을 바꿉니다.

console.log('Transaction failure:', error);

다음 코드로 교체합니다.

console.log('Transaction failure:', error); agent.add('placeholder'); agent.setFollowupEvent('custom_fallback');
  1. 다음을 바꿉니다.

agent.add('Error reading entry from the Firestore database.');

다음 코드로 교체합니다.

agent.add('placeholder'); agent.setFollowupEvent('custom_fallback');

함수는 다음과 같습니다.

function reservation(agent) { let id = agent.parameters.reservationnumber.toString(); let collectionRef = db.collection('reservations'); let userDoc = collectionRef.doc(id); return userDoc.get() .then(doc => { if (!doc.exists) { agent.add('placeholder'); agent.setFollowupEvent('custom_fallback'); } else { db.collection('reservations').doc(id).update({ newname: agent.parameters.newname }).catch(error => { console.log('Transaction failure:', error); agent.add('placeholder'); agent.setFollowupEvent('custom_fallback'); return Promise.reject(); }); agent.add('Ok. I have updated the name on the reservation.'); } return Promise.resolve(); }).catch(() => { agent.add('placeholder'); agent.setFollowupEvent('custom_fallback'); }); }
  1. 배포를 클릭합니다.

agent.setFollowupEvent('custom_fallback'); 코드는 인텐트와 연결된 custom_fallback 이벤트를 트리거합니다. 인텐트를 만들겠습니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. fulfillment 코드 수정하기

작업 8. 커스텀 대체 인텐트

예약을 찾을 수 없거나 Firestore에 연결할 때 오류가 발생하면 커스텀 대체 인텐트가 트리거되어 사용자를 실제 상담사에게 연결해 줍니다.

이를 해결하려면 custom-fallback 인텐트를 만듭니다.

  1. 왼쪽 메뉴에서 인텐트 옆에 있는 를 클릭합니다.

  2. 인텐트 이름 텍스트 필드에 이름 'custom-fallback'을 추가합니다.

  3. 이벤트 섹션에서 다음을 추가하고 완료되면 Enter 키를 누릅니다.

    • custom_fallback

custom-fallback 섹션

  1. 응답 섹션의 텍스트 응답에서 텍스트 필드에 다음 응답을 입력합니다. I'm sorry, I'm not able to find your reservation, but you'll be connected to a live person in a moment.

  2. 기본값 옆의 를 클릭하고 Dialogflow Phone Gateway를 추가합니다.

  3. Dialogflow Phone Gateway 탭에서 응답 추가를 클릭하고 음성 합성을 선택합니다.

  4. 음성 합성에 응답을 입력합니다. I'm sorry I'm not able to find your reservation but you'll be connected to a live person in a moment.

  5. Dialogflow Phone Gateway 탭에서 응답 추가를 클릭하고 통화 연결을 선택합니다.

  6. 사용자가 실제 상담사와 대화해야 하는 경우 Dialogflow에서 연결할 수 있는 번호를 입력합니다.

  7. 이 인텐트를 대화 종료문으로 설정을 사용 설정합니다.

Dialogflow Phone Gateway 탭 페이지의 '이 인텐트를 대화 종료문으로 설정' 슬라이더

  1. 저장 버튼을 클릭합니다. 화면 오른쪽 하단에 에이전트 학습 시작됨에이전트 학습 완료됨이라는 메시지가 표시될 수도 있습니다. 이러한 메시지를 통해 Dialogflow가 개발자가 추가한 문구를 바탕으로 에이전트 모델을 재학습하고 있음을 알 수 있습니다.

  2. 학습이 완료되면 휴대전화로 직접 해보세요! 저장한 번호로 전화를 겁니다. 이번에는 가상 에이전트에게 잘못된 예약 번호를 알려줍니다.

에이전트는 죄송합니다만 예약을 찾을 수 없었습니다. 곧 실제 상담사와 연결될 것입니다.와 같이 응답하고 통화가 설정한 번호로 전환됩니다.

작동 방식

  1. 시스템이 Firestore에서 예약 번호를 찾습니다.

if (!doc.exists)

  1. doc가 거짓인 경우, 즉 존재하지 않는 경우 이벤트를 트리거합니다.

agent.setFollowupEvent('custom_fallback');

  1. 이벤트는 인텐트와 연결되어 Dialogflow가 응답을 말한 다음 호출을 전송할 수 있도록 해줍니다.

내 진행 상황 확인하기를 클릭하여 목표를 확인합니다. 커스텀 대체 인텐트 만들기

작업 9. (선택사항) 코드 내보내기

다음 실습에서 사용할 수 있도록 작업을 내보냅니다. Cloud Functions 아래에서 소스 탭을 클릭하면 ZIP 다운로드 버튼이 표시됩니다.

 Zip 다운로드 버튼이 표시된 소스 탭 페이지

에이전트 내보내기

이 섹션에서는 나중에 다음 실습을 시작할 때 가져올 수 있도록 에이전트를 ZIP 파일로 내보냅니다. 이렇게 하면 지금까지 구성한 인텐트와 항목을 다시 사용할 수 있습니다.

  1. 왼쪽 메뉴의 에이전트 이름 옆에 있는 설정 톱니바퀴 ⚙ 아이콘을 클릭합니다.

  2. 설정 페이지가 열리면 내보내기 및 가져오기 탭으로 이동합니다.

  3. ZIP으로 내보내기를 클릭합니다. 그러면 에이전트가 로컬 ZIP 파일로 다운로드됩니다.

수고하셨습니다

사용자가 가상 에이전트에 전화를 걸 수 있도록 전화 게이트웨이를 추가했습니다.

Google Cloud 교육 및 자격증

Google Cloud 기술을 최대한 활용하는 데 도움이 됩니다. Google 강의에는 빠른 습득과 지속적인 학습을 지원하는 기술적인 지식과 권장사항이 포함되어 있습니다. 기초에서 고급까지 수준별 학습을 제공하며 바쁜 일정에 알맞은 주문형, 실시간, 가상 옵션이 포함되어 있습니다. 인증은 Google Cloud 기술에 대한 역량과 전문성을 검증하고 입증하는 데 도움이 됩니다.

설명서 최종 업데이트: 2023년 10월 18일

실습 최종 테스트: 2023년 10월 18일

Copyright 2024 Google LLC All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.