Amazon Lex V2를 사용하는 경우 Amazon Lex V2 가이드를 대신 참조하십시오.
Amazon Lex V1을 사용하는 경우 봇을 Amazon Lex V2로 업그레이드하는하는 것이 좋습니다. 더 이상 V1에 새로운 기능을 추가하지 않으므로 모든 새 봇에 V2를 사용할 것을 강력히 권장합니다.
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AMAZON.FallbackIntent
사용자의 의도 입력이 봇의 예상과 다를 경우 Amazon Lex가 폴백 의도를 호출하도록 구성할 수 있습니다. 예를 들어 사용자 입력 "캔디를 주문하고 싶어"가 봇의 OrderFlowers
의도와 맞지 않는 경우 Amazon Lex는 응답 처리를 위해 폴백 의도를 호출합니다.
기본 제공 AMAZON.FallbackIntent
의도 유형을 봇에 추가하여 폴백 의도를 추가할 수 있습니다. PutBot 작업을 사용하거나 콘솔의 기본 제공 의도 목록에서 의도를 선택하여 의도를 지정할 수 있습니다.
폴백 의도 호출은 두 단계로 진행됩니다. 첫 번째 단계에서 폴백 의도는 사용자의 입력을 기반으로 매칭됩니다. 폴백 의도가 일치할 경우 봇이 작동하는 방식은 프롬프트에 설정된 재시도 수에 따라 다릅니다. 예를 들어 의도를 판단하는 최대 시도 횟수가 2라면 봇은 폴백 의도를 호출하기 전에 봇의 확인 프롬프트를 두 번 반환합니다.
Amazon Lex가 폴백 의도와 일치하는 경우는 다음과 같습니다.
-
의도에 대한 사용자 입력이 봇이 예상한 입력과 같지 않습니다.
-
음성 입력에 노이즈가 있거나, 텍스트 입력이 단어로 인식되지 않습니다.
-
사용자 입력이 모호하여 Amazon Lex에서 호출할 의도를 판단할 수 없습니다.
폴백 의도가 호출되는 시점은 다음과 같습니다.
-
대화가 시작될 때 명확히 하기 위해 설정된 시도 횟수를 넘긴 후에도 봇이 사용자 입력을 의도로 인식하지 않는 경우
-
설정된 시도 횟수를 넘긴 후에도 의도가 사용자 입력을 슬롯 값으로 인식하지 않는 경우
-
설정된 시도 횟수를 넘긴 후에도 의도가 사용자 입력을 확인 프롬프트에 대한 응답으로 인식하지 않는 경우
폴백 의도에 사용할 수 있는 항목은 다음과 같습니다.
-
Lambda 함수 이행
-
결론문
-
후속 프롬프트
다음은 폴백 의도에 추가할 수 없습니다.
-
표현
-
슬롯
-
초기화 및 검증 Lambda 함수
-
확인 프롬프트
봇의 취소문과 폴백 의도를 모두 구성한 경우 Amazon Lex가 폴백 의도를 사용합니다. 봇에 취소문이 있어야 한다면 폴백 의도에 대한 이행 함수를 사용하여 취소문과 동일한 동작을 제공할 수 있습니다. 자세한 내용은 PutBot 작업의 abortStatement
파라미터를 참조하십시오.
확인 프롬프트 사용
봇에 확인 프롬프트를 제공하면 사용자의 유효한 의도를 얻을 수 있도록 해당 프롬프트가 사용됩니다. 확인 프롬프트는 설정해 놓은 횟수를 반복합니다. 그 이후에 폴백 의도가 호출됩니다.
봇을 만들 때 확인 프롬프트를 설정하지 않았고, 사용자가 올바른 의도로 대화를 시작하지 않는다면 Amazon Lex는 폴백 의도를 즉시 호출합니다.
확인 프롬프트를 사용하지 않고 폴백 의도를 사용한다면 Amazon Lex는 다음 상황에서 폴백을 호출하지 않습니다.
-
사용자가 후속 프롬프트에 응답하지만, 의도를 제공하지 않는 경우 예를 들어, "오늘 다른 것을 원하시나요?"라는 후속 프롬프트에 대한 응답에 대해, 사용자는 "네"라고 대답합니다. Amazon Lex에 사용자의 의도를 파악하기 위한 확인 프롬프트가 없기 때문에 400 잘못된 요청 예외가 반환됩니다.
-
AWS Lambda 함수를 사용 중인 경우
ElicitIntent
대화 유형을 반환합니다. Amazon Lex에 사용자의 의도를 파악하기 위한 확인 프롬프트가 없기 때문에 400 잘못된 요청 예외가 반환됩니다. -
PutSession
작업을 사용 중인 경우ElicitIntent
대화 유형을 전송합니다. Amazon Lex에 사용자의 의도를 파악하기 위한 확인 프롬프트가 없기 때문에 400 잘못된 요청 예외가 반환됩니다.
폴백 의도에 Lambda 함수 사용
폴백 의도가 호출되면 응답은 PutIntent 작업에 대한 fulfillmentActivity
파라미터 설정에 따라 달라집니다. 봇은 다음 중 하나를 수행합니다.
-
의도 정보를 클라이언트 애플리케이션에 반환합니다.
-
이행 Lambda 함수를 호출합니다. 세션에 설정된 세션 변수로 함수를 호출합니다.
폴백 의도가 호출될 때 응답을 설정하는 작업에 대한 자세한 내용은 PutIntent 작업의 fulfillmentActivity
파라미터를 참조하십시오.
폴백 의도에서 이행 Lambda 함수를 사용하는 경우에는 이 함수로 다른 의도를 호출할 수 있습니다. 회신 번호를 수집하거나 고객 서비스 담당자와의 세션을 개설하는 사용자와 일종의 커뮤니케이션을 수행할 수도 있습니다.
이행 함수에서 다른 의도에 대해 수행할 수 있는 모든 작업을 폴백 의도 Lambda 함수에서 수행할 수 있습니다. AWS Lambda 를 사용한 이행 함수 생성에 대한 자세한 내용은 Lambda 함수 사용을 참조하십시오.
세션이 동일하면 폴백 의도는 여러 번 호출할 수 있습니다. 예를 들어 Lambda 함수가 ElicitIntent
대화 작업을 사용하여 사용자에게 다른 의도를 묻는 프롬프트를 표시한다고 해 보겠습니다. Amazon Lex가 설정된 시도 횟수 이후에 사용자의 의도를 추론할 수 없다면 폴백 의도를 다시 호출합니다. 또한 사용자가 구성된 시도 횟수 후 올바른 슬롯 값으로 응답하지 않을 때도 폴백 의도를 호출합니다.
세션 변수를 사용하여 폴백 의도를 호출하는 횟수를 추적하도록 Lambda 함수를 구성할 수 있습니다. Lambda 함수는 Lambda 함수에 설정한 임계값보다 더 많이 호출될 경우 다른 작업을 수행할 수 있습니다. 세션 변수에 대한 자세한 내용은 Setting Session Attributes 섹션을 참조하십시오.