Amazon Lex V2를 사용하는 경우 Amazon Lex V2 가이드를 대신 참조하십시오.
Amazon Lex V1을 사용하는 경우 봇을 Amazon Lex V2로 업그레이드하는하는 것이 좋습니다. 더 이상 V1에 새로운 기능을 추가하지 않으므로 모든 새 봇에 V2를 사용할 것을 강력히 권장합니다.
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
일반 가이드라인
이 섹션에서는 Amazon Lex 사용에 대한 일반적인 가이드라인을 설명합니다.
-
서명 요청 – API 참조 내의 Amazon Lex의 모든 모델 구축 및 런타임 API 작업에서는 요청 인증을 위해 서명 V4를 사용합니다. 요청 인증에 대한 자세한 내용은 Amazon Web Services 일반 참조의 서명 버전 4 서명 프로세스를 참조하십시오.
PostContent의 경우 Amazon Lex는 Amazon Simple Storage Service(S3) API 참조의 권한 부여 헤더에 대한 서명 계산: 단일 청크에서 페이로드 전송(AWS 서명 버전 4)에 설명된 서명되지 않은 페이로드 옵션을 사용합니다.
서명되지 않은 페이로드 옵션을 사용하는 경우 표준 요청에 페이로드의 해시를 포함시키지 마세요. 대신 페이로드의 해시로 리터럴 문자열 "UNSIGNED-PAYLOAD"를 사용합니다. 또한
PostContent
요청에 이름이x-amz-content-sha256
이고 값이UNSIGNED-PAYLOAD
인 헤더를 포함시킵니다. -
Amazon Lex가 사용자 표현에서 슬롯 값을 캡처하는 방식에 대해서는 아래를 참고하십시오.
Amazon Lex는 슬롯 유형 정의에 제공한 열거 값을 사용하여 기계 학습 모델을 교육합니다. 다음과 같은 샘플 표현을 사용하여
GetPredictionIntent
라는 의도를 정의한다고 가정합시다."Tell me the prediction for {Sign}"
여기서
{Sign}
은 사용자 지정 슬롯 유형인ZodiacSign
입니다. 열거 값은Aries
부터Pisces
까지 12개입니다. "...에 대한 예측을 말해줘"라는 사용자 표현에서 Amazon Lex는 다음에 오는 것이 별자리라는 것을 이해합니다.PutSlotType 작업을 사용하여
valueSelectionStrategy
필드를ORIGINAL_VALUE
로 설정하거나, 콘솔에서 값 확장을 선택한 경우, 사용자가 "지구에 대한 예측을 말해줘"라고 말하면 Amazon Lex는 "지구"가ZodiacSign
라고 유추하고 이 값을 클라이언트 애플리케이션 또는 Lambda 함수로 전달합니다. 이행 활동에서 슬롯 값을 사용하기 전에 슬롯 값에 유효한 값이 들어 있는지 확인해야 합니다.valueSelectionStrategy
필드를 PutSlotType 작업을 사용하여TOP_RESOLUTION
으로 설정하거나, 콘솔에서 슬롯 값 및 동의어로 제한을 선택한 경우 반환되는 값은 슬롯 유형에 대해 정의한 값으로 제한됩니다. 예를 들어 사용자가 "지구에 대한 예측을 말해줘"라고 말하는 경우, 슬롯 유형에 대해 정의된 값 중 하나가 아니기 때문에 이를 인식하지 못합니다. 슬롯 값에 대한 동의어를 정의하면 슬롯 값과 동일하게 인식하지만 동의어 대신 슬롯 값을 반환합니다.Amazon Lex가 Lambda 함수를 호출하거나 클라이언트 애플리케이션과의 음성 상호작용 결과를 반환하는 경우, 슬롯 값의 대/소문자는 보장되지 않습니다. 예를 들어 AMAZON.Movie
기본 제공 슬롯 유형에 대한 값을 유도하고 있는 경우 사용자가 "Gone with the wind"라고 말하거나 입력하면 Amazon Lex는 "Gone with the Wind," "gone with the wind" 또는 "Gone With The Wind"를 반환할 수 있습니다. 텍스트 상호 작용 시, 슬롯 값은 입력한 텍스트와 일치하거나 valueResolutionStrategy
필드 값에 따라 달라집니다. -
약자가 포함된 슬롯 값을 정의할 때는 다음 패턴을 사용하십시오.
-
마침표로 구분된 대문자(D.V.D.)
-
공백으로 구분된 대문자(D V D)
-
-
Amazon Lex는 Alexa Skills Kit가 지원하는 AMAZON.LITERAL 기본 제공 슬롯 유형을 지원하지 않습니다. 그러나 Amazon Lex는 이 기능을 구현하는 데 사용할 수 있는 사용자 지정 슬롯 유형 생성을 지원합니다. 이전 항목에서 설명한 것처럼 사용자 지정 슬롯 유형 정의 외부의 값을 캡처할 수 있습니다. 더 많은 다양한 열거 값을 추가하여 자동 음성 인식(ASR)및 자연 언어 이해(NLU)의 정확도를 높일 수 있습니다.
-
AMAZON.DATE
및 AMAZON.TIME 기본 제공 슬롯 유형은 절대 및 상대 날짜와 시간을 둘 다 캡처합니다. 상대 날짜 및 시간은 Amazon Lex가 요청을 처리하는 리전에서 확인됩니다. AMAZON.TIME
기본 제공 슬롯 유형의 경우 시간이 오전인지 또는 오후인지를 사용자가 지정하지 않으면 시간이 모호하므로 Amazon Lex는 사용자에게 메시지를 다시 표시합니다. 따라서 절대 시간을 유도하는 프롬프트를 사용하는 것이 좋습니다. 예를 들어 "언제 피자가 배달되기를 원하시나요? 오후 6시 또는 저녁 6시로 답할 수 있습니다"와 같은 프롬프트를 사용합니다. -
혼동을 일으킬 수 있는 교육 데이터를 봇에 제공하면 사용자 입력을 이해하는 Amazon Lex의 기능이 감소됩니다. 아래 예제를 참조하십시오.
봇에 두 가지 의도(
OrderPizza
및OrderDrink
)가 있다고 가정합니다. 여기에서 두 가지 의도 모두 "주문 하고 싶어"라는 표현으로 구성됩니다. 이 표현은 Amazon Lex가 빌드 시간에 봇용 언어 모델을 구축하는 동안 학습할 수 있는 특정 의도에 매핑되지 않습니다. 따라서 런타임에 사용자가 이 표현을 입력하면 Amazon Lex는 높은 신뢰도로 의도를 선택할 수 없습니다.사용자 확인을 얻기 위해 사용자 지정 의도를 정의하는 또 다른 예(
MyCustomConfirmationIntent
)를 가정하고, "예" 및 "아니오" 표현으로 의도를 구성합니다. Amazon Lex에는 사용자 확인을 이해하기 위한 언어 모델도 있습니다. 이는 충돌하는 상황을 초래할 수 있습니다. 사용자가 "예"라고 응답하는 경우, 이것은 지속적인 의도를 확인하는 것이거나 생성한 사용자 지정 의도를 사용자가 요청하는 중임을 뜻합니다.일반적으로 사용자가 제공한 샘플 표현은 특정 의도에, 그리고 선택 사항으로, 특정 슬롯 값에 매핑되어야 합니다.
-
런타임 API 작업 PostContent 및 PostText에서는 사용자 ID를 필수 파라미터로 받아들입니다. 개발자는 이 값을 API에 설명된 제약 조건을 충족하는 어떤 값으로도 설정할 수 있습니다. 사용자 로그인, 이메일 또는 주민등록번호와 같은 기밀 정보를 전송할 때는 이 파라미터를 사용하지 않는 것이 좋습니다. 이 ID는 봇과의 대화를 식별하는 데 주로 사용됩니다(피자를 주문하는 사용자가 여럿일 수 있음).
-
클라이언트 애플리케이션에서 인증을 위해 Amazon Cognito를 사용하는 경우, Amazon Cognito 사용자 ID와 Amazon Lex 사용자 ID를 사용할 수 있습니다. 봇 용으로 구성된 모든 Lambda 함수에는 Amazon Lex가 대신하여 Lambda 함수를 호출하는 사용자를 식별하기 위한 자체 인증 메커니즘이 있어야 합니다.
-
Amazon은 대화를 중단하고자 하는 사용자의 의도를 캡처하는 의도를 정의하도록 장려합니다. 예를 들어, 실험 표현("나는 아무것도 원하지 않아", "종료", "갈게") 포함, 슬롯 미포함, 코드 후크로 구성된 Lambda 함수 미포함 의도(
NothingIntent
)를 정의할 수 있습니다. 이렇게 하면 사용자가 편안하게 대화를 종료할 수 있습니다.