쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

조건을 추가하여 대화 분기 설정

포커스 모드

이 페이지에서

조건을 추가하여 대화 분기 설정 - Amazon Lex

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

조건부 분기를 사용하여 고객이 봇과의 대화를 통해 이동하는 경로를 제어할 수 있습니다. 슬롯 값, 세션 속성, 입력 모드 및 입력 트랜스크립트 필드의 내용 또는 Amazon Kendra의 응답을 기반으로 대화를 분기할 수 있습니다.

최대 4개의 분기를 정의할 수 있습니다. Amazon Lex V2가 해당 분기를 따르려면 각 분기에 충족해야 하는 조건이 있습니다. 조건을 충족하는 분기가 하나도 없는 경우 기본 분기를 따릅니다.

분기를 정의할 때는 해당 분기에 해당하는 조건이 true로 평가될 경우 Amazon Lex V2가 수행해야 하는 작업을 정의합니다. 다음과 같은 작업을 정의할 수 있습니다.

  • 사용자에게 전송된 응답.

  • 슬롯에 적용할 슬롯 값.

  • 현재 세션에 대한 세션 속성 값.

  • 대화의 다음 단계. 자세한 내용은 대화 경로 생성 단원을 참조하세요.

조건부 분기를 위한 다양한 옵션을 선택할 수 있습니다.

각 조건부 분기에는 Amazon Lex V2가 분기를 따르려면 반드시 충족해야 하는 부울 표현식이 있습니다. 조건에 따라 사용할 수 있는 비교 연산자와 부울 연산자, 함수 및 수량자 연산자가 있습니다. 예를 들어, {age} 슬롯이 24보다 작으면 다음 조건이 true를 반환합니다.

{age} < 24

{toppings} 다중 값 슬롯에 “pineapple”이라는 단어가 포함된 경우 다음 조건은 true를 반환합니다.

{toppings} CONTAINS "pineapple"

더 복잡한 조건을 위해 여러 비교 연산자를 부울 연산자와 결합할 수 있습니다. 예를 들어 {make} 슬롯 값이 “Honda”이고 {model} 슬롯 값이 “Civic”인 경우 다음 조건은 true를 반환합니다. 괄호를 사용하여 평가 순서를 설정합니다.

({make} = "Honda") AND ({model} = "Civic")

다음 항목에서는 조건부 분기 연산자 및 함수에 대한 세부 정보를 제공합니다.

참고

2022년 8월 17일, Amazon Lex V2는 사용자와의 대화를 관리하는 방식에 대한 변경 사항을 발표했습니다. 이번 변경을 통해 사용자가 대화를 통해 이동하는 경로를 더 효과적으로 제어할 수 있게 되었습니다. 자세한 내용은 Amazon Lex V2의 대화 흐름 변경 사항 단원을 참조하세요. 2022년 8월 17일 이전에 생성된 봇은 대화 코드 후크 메시지, 값 설정, 다음 단계 구성, 조건 추가를 지원하지 않습니다.

비교 연산자

Amazon Lex V2는 조건에 대해 다음과 같은 비교 연산자를 지원합니다.

  • 같음(=)

  • 같지 않음(!=)

  • 작음(<)

  • 작거나 같음(<=)

  • 큼 (>)

  • 크거나 같음(>=)

비교 연산자를 사용할 때는 다음 규칙을 사용합니다.

  • 왼쪽은 참조여야 합니다. 예를 들어 슬롯 값을 참조하려면 {slotName}을 사용합니다. 세션 속성 값을 참조하려면 [attribute]를 사용합니다. 입력 모드 및 입력 트랜스크립트의 경우 $.inputMode$.inputTranscript를 사용합니다.

  • 오른쪽은 상수이고 왼쪽과 같은 유형이어야 합니다.

  • 설정되지 않은 속성을 참조하는 모든 표현식은 유효하지 않은 것으로 처리되며 평가되지 않습니다.

  • 다중 값 슬롯을 비교할 때 사용되는 값은 해석된 모든 값을 쉼표로 구분한 목록입니다.

비교는 참조의 슬롯 유형을 바탕으로 합니다. 다음과 같이 확인합니다.

  • 문자열 – 문자열은 ASCII 표현을 기준으로 비교됩니다. 이 비교는 대문자 및 소문자를 구분하지 않습니다.

  • 숫자 – 숫자 기반 슬롯을 문자열 표현에서 숫자로 변환한 다음 비교합니다.

  • 날짜 및 시간 – 시간 기반 슬롯은 시계열을 기준으로 비교됩니다. 더 이른 날짜나 시간은 더 작은 것으로 간주됩니다. 기간의 경우 기간이 짧을수록 더 짧은 기간으로 간주됩니다.

부울 연산

Amazon Lex V2는 비교 연산자를 조합할 수 있는 부울 연산자를 지원합니다. 연산자를 통해 다음과 유사한 명령문을 만들 수 있습니다.

({number} >= 5) AND ({number} <= 10)

다음과 같은 부울 연산자를 사용할 수 있습니다.

  • AND (&&)

  • OR (||)

  • NOT (!)

수량화 연산자

수량자 연산자는 수열의 요소를 평가하여 하나 이상의 요소가 조건을 충족하는지 확인합니다.

  • CONTAINS – 지정된 값이 다중 값 슬롯에 포함되어 있는지 확인하고, 포함된 경우 true를 반환합니다. 예를 들어, {toppings} CONTAINS "pineapple"은 사용자가 피자에 파인애플을 주문하면 true를 반환합니다.

함수

함수 앞에는 문자열 fn.이 와야 합니다. 함수의 인수는 슬롯, 세션 속성 또는 요청 속성에 대한 참조입니다. Amazon Lex V2는 슬롯의 값에서 정보를 가져오기 위한 두 가지 함수, 세션 속성 또는 요청 속성을 제공합니다.

  • fn.COUNT() – 다중 값 슬롯의 값 수를 계산합니다.

    예를 들어 {toppings} 슬롯에 “pepperoni, pineapple” 값이 포함된 경우:

    fn.COUNT({toppings}) = 2

  • fn.IS_SET() – 슬롯, 세션 속성 또는 요청 속성이 현재 세션에 설정된 경우 값은 true입니다.

    이전 예를 기반으로 설정:

    fn.IS_SET({toppings})

  • fn.LENGTH() - 값은 현재 세션에 설정된 세션 특성, 슬롯 값 또는 슬롯 특성 값의 길이입니다. 이 함수는 다중 값 슬롯 또는 복합 슬롯을 지원하지 않습니다.

    예시

    {credit-card-number} 슬롯에 “123456781234” 값이 포함될 경우:

    fn.LENGTH({credit-card-number}) = 12

조건식 샘플

다음은 몇 가지 조건식 예시입니다. 참고: $.은 Amazon Lex JSON 응답의 진입점을 나타냅니다. $. 다음에 오는 값은 Amazon Lex 응답 내에서 구문 분석되어 값을 검색합니다. Amazon Lex 응답의 트랜스크립션 블록에 대한 JSON 경로 참조를 사용하는 조건식은 ASR 트랜스크립션 점수를 지원하는 동일한 로캘에서만 지원됩니다.

값 유형 사용 사례 조건식
사용자 지정 슬롯 pizzaSize 슬롯 값이 라지와 같음 {pizzaSize} = "large"
사용자 지정 슬롯 pizzaSize는 라지 또는 미디엄과 같음 {pizzaSize} = "large" OR {pizzaSize} = "medium"
사용자 지정 슬롯 ()AND/OR가 포함된 표현식 {pizzaType} = "pepperoni" OR {pizzaSize} = "medium" OR {pizzaSize} = "small"
사용자 지정 슬롯(다중 값 슬롯) 토핑 중 하나가 양파인지 확인 {toppings} CONTAINS "Onion"
사용자 지정 슬롯(다중 값 슬롯) 토핑 수가 3개 이상 fn.COUNT({topping}) > 2
AMAZON.AlphaNumeric bookingID는 ABC123 {bookingID} = "ABC123"
AMAZON.Number 연령 슬롯 값이 30보다 큼 {age} > 30
AMAZON.Number 연령 슬롯 값이 10과 같음 {age} = 10
AMAZON.Date 1990년 이전의 dateOfBirth 슬롯 값 {dateOfBirth} < "1990-10-01"
AMAZON.State destinationState 슬롯 값이 워싱턴과 같음 {destinationState} = "washington"
AMAZON.Country destinationCountry 슬롯 값이 미국이 아님 {destinationCountry} != "united states"
AMAZON.FirstName firstName 슬롯 값이 John임 {firstName} = "John"
AMAZON.PhoneNumber phoneNumber 슬롯 값이 716767891932임 {phoneNumer} = 716767891932
AMAZON.Percentage 백분율 슬롯 값이 78보다 크거나 같은지 확인 {percentage} >= 78
AMAZON.EmailAddress emailAddress 슬롯 값이 userA@hmail.com임 {emailAddress} = "userA@hmail.com"
AMAZON.LastName lastName 슬롯 값이 Doe임 {lastName} = "Doe"
AMAZON.City 시티 슬롯 값이 시애틀과 같음 {city} = "Seattle"
AMAZON.Time 시간은 오후 8시 이후임 {time} > "20:00"
AMAZON.StreetName streetName 슬롯 값이 Boren Avenue임 {streetName} = "boren avenue"
AMAZON.Duration travelDuration 슬롯 값이 2시간 미만임 {travelDuration} < P2H
입력 모드 입력 모드는 음성 $.inputMode = "Speech"
입력 대화 기록 입력 대화 기록은 "I want a large pizza"와 같음 $.inputTranscript = "I want a large pizza"
세션 속성 customer_subscription_type 속성 확인 [customer_subcription_type] = "yearly"
요청 속성 retry_enabled 플래그 확인 ((retry_enabled)) = "TRUE"
Kendra 응답 Kendra 응답에 FAQ 포함됨 fn.IS_SET(((x-amz-lex:kendra-search-response-question_answer-question-1)))
트랜스크립션을 사용한 조건식) 트랜스크립션 JSON 경로를 사용한 조건식 $.transcriptions[0].transcriptionConfidence < 0.8 AND $.transcriptions[1].transcriptionConfidence > 0.5
세션 속성 설정 트랜스크립션, JSON 경로 및 슬롯 값을 사용하여 세션 속성 설정 [sessionAttribute] = "$.transcriptions..." AND [sessionAttribute] = "{<slotName>}"
슬롯 값 설정 세션 속성 및 트랜스크립션 JSON 경로를 사용하여 슬롯 값 설정 {slotName} = [<sessionAttribute>] AND {slotName} = "$.transcriptions..."
참고

slotName은 Amazon Lex 봇에 있는 슬롯의 이름을 나타냅니다. 슬롯이 확인되지 않거나(null) 슬롯이 없는 경우 런타임에 할당이 무시됩니다. sessionAttribute는 빌드 시 고객이 설정하는 세션 속성의 이름을 나타냅니다.

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.