기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Lex V2 봇의 세션 특성 설정
세션 속성에는 세션 중에 봇과 클라이언트 애플리케이션 간에 전달되는 애플리케이션별 정보가 포함됩니다.는 봇에 대해 구성된 모든 Lambda 함수에 세션 속성을 전달합니다. Lambda 함수가 세션 속성을 추가하거나 업데이트하는 경우는 새 정보를 클라이언트 애플리케이션에 다시 전달합니다.
Lambda 함수의 세션 속성을 사용하여 봇을 초기화하고 프롬프트 및 응답 카드를 사용자 지정합니다. 예시:
-
초기화 - 피자 주문 봇에서 클라이언트 애플리케이션은 RecognizeText 또는 RecognizeUtterance 작업을 처음 호출할 때 사용자의 위치를 세션 속성으로 전달합니다. 예를 들어
"Location": "111 Maple Street"
입니다. Lambda 함수는 이 정보를 사용하여 주문할 수 있는 가장 가까운 피자 가게를 찾습니다. -
프롬프트 개인화 - 세션 속성을 참조하도록 프롬프트와 응답 카드를 구성합니다. 예를 들어, "[FirstName]님, 어떤 토핑을 드시겠어요?" 사용자의 이름을 세션 속성(
{"FirstName": "Vivian"}
)으로 전달하면 Amazon Lex 가 자리 표시자를 이름으로 대체합니다. 그런 다음 사용자에게 “Hey Vivian, 어떤 토핑을 원하세요?”라는 맞춤형 프롬프트를 보냅니다.
세션 속성은 세션 기간 동안 유지됩니다.는 세션이 종료될 때까지 암호화된 데이터 스토어에 속성을 저장합니다. 클라이언트는 sessionAttributes
필드가 값으로 설정된 상태에서 RecognizeText 또는 RecognizeUtterance 작업을 직접적으로 호출하여 요청에 세션 속성을 생성할 수 있습니다. Lambda 함수 는 응답에 세션 속성을 생성할 수 있습니다. 클라이언트 또는 Lambda 함수가 세션 속성을 생성한 후에는 클라이언트 애플리케이션이에 대한 요청에 sessionAttribute
필드를 포함하지 않을 때마다 저장된 속성 값이 사용됩니다.
예를 들어, 다음과 같은 두 개의 세션 속성 {"x":
"1", "y": "2"}
이 있다고 가정하겠습니다. 클라이언트가 sessionAttributes
필드를 지정하지 않고 RecognizeText
또는 RecognizeUtterance
작업을 호출하는 경우는 저장된 세션 속성()을 사용하여 Lambda 함수를 호출합니다{"x": 1, "y": 2}
. Lambda 함수가 세션 속성을 반환하지 않으면는 저장된 세션 속성을 클라이언트 애플리케이션에 반환합니다.
클라이언트 애플리케이션 또는 Lambda 함수가 세션 속성을 전달하는 경우는 저장된 세션 속성을 업데이트합니다. {"x": 2}
과 같은 기존 값을 전달하면 저장된 값이 업데이트됩니다. 새 세션 속성 세트(예를 들어, {"z": 3}
) 를 전달하면 기존 값은 제거되고 새 값만 유지됩니다. 빈 맵 {}
가 전달되면 저장된 값이 지워집니다.
세션 속성을 로 전송하려면 속성의 string-to-string 맵을 생성합니다. 다음은 세션 속성을 매핑하는 방법을 보여줍니다.
{ "attributeName": "attributeValue", "attributeName": "attributeValue" }
RecognizeText
작업의 경우 다음과 같이 sessionState
구조의 sessionAttributes
필드를 사용하여 요청 본문에 맵을 삽입합니다.
"sessionState": { "sessionAttributes": { "attributeName": "attributeValue", "attributeName": "attributeValue" } }
RecognizeUtterance
작업의 경우, 맵을 base64로 인코딩한 다음 x-amz-lex-session-state
헤더의 일부로 전송합니다.
세션 속성으로 이진수 또는 구조화된 데이터를 보내는 경우 먼저 데이터를 단순 문자열로 변환해야 합니다. 자세한 내용은 Lex V2 봇에서 복잡한 특성 설정 단원을 참조하세요.