지원 종료 공지: 2025년 9월 15 AWS 일에는 Amazon Lex V1에 대한 지원을 중단합니다. 2025년 9월 15일 이후에는 Amazon Lex V1 콘솔 또는 Amazon Lex V1 리소스에 더 이상 액세스할 수 없습니다. Amazon Lex V2를 사용하는 경우 대신 Amazon Lex V2 가이드를 참조하세요.
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
스케쥴 예약
이번 봇 예제에서는 치과에서 사용하는 스케쥴 예약을 연습합니다. 또한 이 예제에서는 응답 카드를 사용하여 버튼으로 사용자 입력을 가져오는 방법을 보여줍니다. 특히 예제에서는 런타임에서 동적으로 응답 카드를 생성하는 방법을 보여 줍니다.
빌드 시 응답 카드(정적 응답 카드라고도 함)를 구성하거나 AWS Lambda 함수에서 동적으로 생성할 수 있습니다. 이 예제에서 봇은 다음의 응답 카드를 사용합니다.
-
예약 유형에 대한 버튼을 목록화하는 응답 카드. 다음 이미지를 예시로 참조하세요.
-
예약 날짜에 대한 버튼을 목록화하는 응답 카드. 다음 이미지를 예시로 참조하세요.
-
재안된 예약 시간을 확인하기 위한 버튼을 목록화하는 응답 카드. 다음 이미지를 예시로 참조하세요.
예약 가능한 약속 날짜와 시간이 변하므로 런타임 시에 응답 카드를 생성해야 합니다. AWS Lambda 함수를 사용하여 이러한 응답 카드를 동적으로 생성합니다. Lambda 함수는 Amazon Lex에 대한 응답으로 응답 카드를 반환합니다. Amazon Lex에는 클라이언트에 대한 응답 카드가 포함되어 있습니다.
클라이언트(예: Facebook Messenger)가 응답 카드를 지원하는 경우, 사용자는 버튼 목록에서 선택하거나 응답을 입력할 수 있습니다. 그 외의 경우에는, 단순히 응답을 입력합니다.
앞의 예제에 표시된 버튼 외에도 응답 카드에 표시할 이미지, 첨부 파일, 기타 유용한 정보를 포함시킬 수 있습니다. 응답 카드에 대한 자세한 내용은 응답 카드을 참조하십시오.
이번 연습에서는, 다음 작업을 수행합니다.
-
봇 생성 및 테스트(ScheduleAppointment 청사진 사용). 이 연습에서는 봇 청사진을 사용하여 봇을 빠르게 설정하고 테스트합니다. 사용 가능한 청사진 목록은 Amazon Lex와 AWS Lambda 청사진을 참조하십시오. 이 봇은 하나의 의도(
MakeAppointment
)로 미리 구성되어 있습니다. -
Lambda 함수 생성 및 테스트(Lambda에서 제공한 lex-make-appointment-python 청사진 사용). 이 Lambda 함수를 코드 후크로 사용하도록
MakeAppointment
의도를 구성하여 초기화, 검증 및 이행 작업을 수행합니다.참고
제시된 Lambda 함수 예제에서는 가상의 치과 진료 예약 가용성을 기반으로 한 동적 대화를 보여 줍니다. 실제 application에서는 실제 달력을 사용하여 예약할 수 있습니다.
-
Lambda 함수를 코드 후크로 사용하도록
MakeAppointment
의도 구성을 업데이트합니다. 그런 다음 종합 경험을 테스트합니다. -
실행 중인 응답 카드를 볼 수 있도록 Facebook Messenger에 일정 약속 봇을 게시합니다(Amazon Lex 콘솔의 클라이언트는 현재 응답 카드를 지원하지 않음).
다음 섹션에서는 이 연습에서 사용하는 블루프린에 대한 요약 정보를 제공합니다.
주제
봇 청사진(ScheduleAppointment) 개요
이번 연습에서 봇을 생성하는 데 사용하는 ScheduleAppointment 청사진은 다음과 같이 미리 구성되어 있습니다.
-
슬롯 유형 –
AppointmentTypeValue
란 이름의 1개의 사용자 지정 슬롯 유형과 다음과 같은 열거 값:root canal
,cleaning
및whitening
-
의도 – 다음과 같이 미리 구성된 의도 한 개(
MakeAppointment
)-
슬롯 – 의도는 다음 슬롯으로 구성되어 있습니다.
-
AppointmentTypes
사용자 지정 유형의 슬롯AppointmentType
. -
AMAZON.DATE
기본 제공 유형의 슬롯Date
. -
AMAZON.TIME
기본 제공 유형의 슬롯Time
.
-
-
표현 – 의도는 다음 표현으로 미리 구성되어 있습니다.
-
"예약을 진행하고 싶습니다"
-
"예약 진행"
-
"{AppointmentType} 예약"
사용자가 이러한 표현을 하면 Amazon Lex는
MakeAppointment
가 의도라고 판단하고 프롬프트를 사용하여 슬롯 데이터를 유도합니다. -
-
프롬프트 – 의도는 다음 프롬프트로 미리 구성되어 있습니다.
-
AppointmentType
슬롯에 대한 프롬프트 – "어떤 유형의 예약을 진행하고 싶으세요?" -
Date
슬롯에 대한 프롬프트 – "{AppointmentType} 예약을 언제 진행할까요?” -
Time
슬롯에 대한 프롬프트 – "{AppointmentType} 예약을 몇시로 할까요?" and"{Date}의 몇시인가요?"
-
확인 프롬프트 – "{Time}에 가능합니다. 예약을 진행할까요?"
-
취소 메시지 – "네, 더 이상 진행하지 않겠습니다."
-
-
Lambda 함수 청사진(lex-make-appointment-python) 개요
Lambda 함수 청사진(lex-make-appointment-python)는 ScheduleAppointment 봇 청사진을 사용하여 생성한 봇의 코드 후크입니다.
이 Lambda 함수 청사진 코드는 초기화/검증 및 이행 작업을 모두 수행할 수 있습니다.
-
이 Lambda 함수 코드에서는 치과 진료 예약의 예를 토대로 한 동적 대화를 보여 줍니다(실제 애플리케이션에서는 달력을 사용할 수 있음). 사용자가 지정하는 요일 또는 날짜에 대해 이 코드는 다음과 같이 구성됩니다.
-
예약 가능한 요일 또는 날짜가 없는 경우, Lambda 함수는 Amazon Lex 로 다이렉팅하여 사용자에게 다른 요일 또는 날짜를 선택하도록 하는 응답을 반환합니다(
dialogAction
유형을ElicitSlot)
로 설정하여). 자세한 내용은 응답 형식을 참조하세요. -
지정된 요일 또는 날짜에 예약 가능한 시간이 하나 뿐인 경우, Lambda 함수는 응답으로서 예약 가능한 시간을 제안하고 Amazon Lex를 다이렉팅하여 사용자의 확인을 얻습니다(
ConfirmIntent
에 대한 응답으로dialogAction
을 설정하여). 이는 예약 가능한 약속 시간을 사전에 제시하여 사용자 경험을 향상시킬 수 있는 방법을 보여 줍니다. -
예약 가능한 시간이 여러 개인 경우, Lambda 함수는 Amazon Lex에 대한 응답으로 예약 가능한 시간 목록을 반환합니다. Amazon Lex는 Lambda 함수부터 받은 메시지가 포함된 응답을 반환합니다.
-
-
이행 코드 후크로서 Lambda 함수는 약속이 예약되었음(즉, 의도가 이행됨)을 나타내는 요약 메시지를 반환합니다.
참고
이 예제에서는 응답 카드를 사용하는 방법을 보여 줍니다. Lambda 함수는 Amazon Lex에 대한 응답 카드를 구성하고 반환합니다. 응답 카드에는 예약 가능한 날짜와 시간이 선택할 수 있는 버튼으로 나열되어 있습니다. Amazon Lex 콘솔에서 제공한 클라이언트를 사용하여 봇을 테스트하는 경우 응답 카드가 표시되지 않습니다. 응답 카드를 보려면 봇을 Facebook Messenger와 같은 메시징 플랫폼에 통합해야 합니다. 지침은 Amazon Lex 봇을 Facebook Messenger와 통합하기을 참조하세요. 응답 카드에 대한 자세한 내용은 메시지 관리 을 참조하십시오.
Amazon Lex가 Lambda 함수를 간접 호출할 때 이벤트 데이터를 입력으로 전달합니다. 이벤트 필드 중 하나는 invocationSource
이며, Lambda 함수는 이 필드를 사용하여 입력 검증과 이행 활동 중 하나를 선택합니다. 자세한 내용은 입력 이벤트 형식을 참조하세요.