세션 속성 설정 - Amazon Lex

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

세션 속성 설정

세션 속성세션 중에 봇과 클라이언트 애플리케이션 사이에 전달되는 애플리케이션 관련 정보가 들어 있습니다. Amazon Lex는 봇에 대해 구성된 모든 Lambda 함수에 세션 속성을 전달합니다. Lambda 함수가 세션 속성을 추가 또는 업데이트하는 경우, Amazon Lex는 새로운 정보를 클라이언트 애플리케이션에 다시 전달합니다.

Lambda 함수에서 세션 속성을 사용하여 봇을 초기화하고 프롬프트 및 응답 카드를 사용자 지정할 수 있습니다. 예:

  • 초기화 — 피자 주문 봇에서 클라이언트 애플리케이션은 사용자의 위치를 첫 번째 호출에서 세션 속성으로 전달합니다.RecognizeText또는RecognizeUtterance작업. 예: "Location": "111 Maple Street". Lambda 함수는 이 정보를 사용하여 주문할 가장 가까운 피자 가게를 찾습니다.

  • 프롬프트 Personalize — 세션 속성을 참조하도록 프롬프트 및 응답 카드를 구성합니다. 예를 들어, “안녕하세요 [FirstName], 어떤 토핑을 원하십니까?” 사용자의 이름을 세션 속성으로 전달하는 경우 ({"FirstName": "Vivian"}) 를 선택하면 Amazon Lex가 자리 표시자의 이름을 대체합니다. 그런 다음 사용자에게 맞춤형 프롬프트를 보냅니다. “Hey Vivian, 어떤 토핑을 원하십니까?”

세션 속성은 세션 기간 동안 지속됩니다. Amazon Lex는 세션이 끝날 때까지 암호화된 데이터 저장소에 저장합니다. 클라이언트는 다음 중 하나를 호출하여 요청에 세션 속성을 만들 수 있습니다.RecognizeText또는RecognizeUtterance작업sessionAttributes필드를 값으로 설정합니다. Lambda 함수는 응답에서 세션 속성을 생성할 수 있습니다. 클라이언트 또는 Lambda 함수가 세션 속성을 생성한 후에는 클라이언트 애플리케이션에 포함되지 않을 때마다 저장된 속성 값이 사용됩니다.sessionAttributeAmazon Lex에 대한 요청의 필드입니다.

예를 들어 세션 속성이 두 개 있다고 가정해봅시다.{"x": "1", "y": "2"}. 클라이언트가 를 호출하는 경우RecognizeText또는RecognizeUtterance를 지정하지 않은 작업sessionAttributes필드에서는 Amazon Lex가 저장된 세션 속성을 사용하여 Lambda 함수를 호출합니다 ({"x": 1, "y": 2}). Lambda 함수가 세션 속성을 반환하지 않으면 Amazon Lex는 저장된 세션 속성을 클라이언트 애플리케이션에 반환합니다.

클라이언트 애플리케이션 또는 Lambda 함수가 세션 속성을 전달하는 경우 Amazon Lex는 저장된 세션 속성을 업데이트합니다. 다음과 같은 기존 값 전달 {"x": 2}에서 저장된 값을 업데이트합니다. 다음과 같은 새로운 세션 속성 집합을 전달하는 경우{"z": 3}기존 값이 제거되고 새 값만 유지됩니다. 빈 맵이 있을 때,{}가 전달되면 저장된 값이 지워집니다.

세션 속성을 Amazon Lex로 전송하려면 속성의 문자열 간 맵을 생성합니다. 다음은 세션 속성을 매핑하는 방법을 보여 줍니다.

{ "attributeName": "attributeValue", "attributeName": "attributeValue" }

RecognizeText작업, 다음을 사용하여 요청 본문에 맵을 삽입합니다.sessionAttributes필드sessionState구조는 다음과 같습니다.

"sessionState": { "sessionAttributes": { "attributeName": "attributeValue", "attributeName": "attributeValue" } }

PostContent작업을 수행하면 base64에서 맵을 인코딩 한 다음 맵의 일부로 보냅니다.x-amz-lex-session-state헤더.

세션 속성에서 이진 또는 구조화된 데이터를 전송하는 경우 먼저 데이터를 간단한 문자열로 변환해야 합니다. 자세한 정보는 복잡한 속성 설정을 참조하십시오.