

지원 종료 공지: 2025년 9월 15 AWS 일에는 Amazon Lex V1에 대한 지원을 중단할 예정입니다. 2025년 9월 15일 이후에는 Amazon Lex V1 콘솔 또는 Amazon Lex V1 리소스에 더 이상 액세스할 수 없습니다. Amazon Lex V2를 사용하는 경우 대신 [Amazon Lex V2 가이드를](https://docs.aws.amazon.com/lexv2/latest/dg/what-is.html) 참조하세요.

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

# PutSession
<a name="API_runtime_PutSession"></a>

Amazon Lex 봇을 사용하여 새 세션을 생성하거나 기존 세션을 수정합니다. 이 작업을 사용하면 애플리케이션이 봇의 상태를 설정할 수 있습니다.

자세한 내용은 [세션 관리](https://docs.aws.amazon.com/lex/latest/dg/how-session-api.html)를 참조하세요.

## Request Syntax
<a name="API_runtime_PutSession_RequestSyntax"></a>

```
POST /bot/botName/alias/botAlias/user/userId/session HTTP/1.1
Accept: accept
Content-type: application/json

{
   "activeContexts": [ 
      { 
         "name": "string",
         "parameters": { 
            "string" : "string" 
         },
         "timeToLive": { 
            "timeToLiveInSeconds": number,
            "turnsToLive": number
         }
      }
   ],
   "dialogAction": { 
      "fulfillmentState": "string",
      "intentName": "string",
      "message": "string",
      "messageFormat": "string",
      "slots": { 
         "string" : "string" 
      },
      "slotToElicit": "string",
      "type": "string"
   },
   "recentIntentSummaryView": [ 
      { 
         "checkpointLabel": "string",
         "confirmationStatus": "string",
         "dialogActionType": "string",
         "fulfillmentState": "string",
         "intentName": "string",
         "slots": { 
            "string" : "string" 
         },
         "slotToElicit": "string"
      }
   ],
   "sessionAttributes": { 
      "string" : "string" 
   }
}
```

## URI 요청 파라미터
<a name="API_runtime_PutSession_RequestParameters"></a>

요청은 다음 URI 파라미터를 사용합니다.

 ** [accept](#API_runtime_PutSession_RequestSyntax) **   <a name="lex-runtime_PutSession-request-accept"></a>
Amazon Lex가 응답으로 반환하는 메시지는 이 필드의 값에 따라 텍스트 또는 음성일 수 있습니다.  
+ 값이 `text/plain; charset=utf-8`인 경우 Amazon Lex는 응답에서 텍스트를 반환합니다.
+ 값이 `audio/`로 시작하는 경우, Amazon Lex는 응답으로 음성을 반환합니다. Amazon Lex는 Amazon Polly를 사용하여 사용자가 지정한 구성으로 음성을 생성합니다. 예를 들어, 값을 `audio/mpeg`로 지정하면 Amazon Lex는 음성을 MPEG 형식으로 반환합니다.
+ 값이 `audio/pcm`인 경우 반환되는 음성은 16비트 리틀 엔디안 형식의 `audio/pcm`입니다.
+ 허용되는 값은 다음과 같습니다.
  +  `audio/mpeg` 
  +  `audio/ogg` 
  +  `audio/pcm` 
  +  `audio/*`(기본값은 mpeg)
  +  `text/plain; charset=utf-8` 

 ** [botAlias](#API_runtime_PutSession_RequestSyntax) **   <a name="lex-runtime_PutSession-request-uri-botAlias"></a>
세션 데이터를 포함하는 봇에 사용되는 별칭입니다.  
필수 항목 여부: 예

 ** [botName](#API_runtime_PutSession_RequestSyntax) **   <a name="lex-runtime_PutSession-request-uri-botName"></a>
세션 데이터가 들어있는 봇의 명칭.  
필수 항목 여부: 예

 ** [userId](#API_runtime_PutSession_RequestSyntax) **   <a name="lex-runtime_PutSession-request-uri-userId"></a>
클라이언트 애플리케이션 사용자의 ID입니다. Amazon Lex는 이를 사용하여 사용자와 봇의 대화를 식별합니다.  
길이 제약: 최소 길이는 2. 최대 길이는 100.  
패턴: `[0-9a-zA-Z._:-]+`   
필수 여부: 예

## 요청 본문
<a name="API_runtime_PutSession_RequestBody"></a>

요청은 JSON 형식으로 다음 데이터를 받습니다.

 ** [activeContexts](#API_runtime_PutSession_RequestSyntax) **   <a name="lex-runtime_PutSession-request-activeContexts"></a>
요청에 대해 활성화된 컨텍스트 목록. 이전 의도가 이행될 때 또는 요청에 컨텍스트를 포함시켜 컨텍스트를 활성화할 수 있습니다.  
컨텍스트 목록을 지정하지 않으면 Amazon Lex는 세션의 현재 컨텍스트 목록을 사용합니다. 빈 목록을 지정하면 세션의 모든 컨텍스트가 지워집니다.  
타입: [ActiveContext](API_runtime_ActiveContext.md)객체 배열  
배열 항목: 최소 항목 수는 0개. 최대 항목 수는 20개.  
필수 여부: 아니요

 ** [dialogAction](#API_runtime_PutSession_RequestSyntax) **   <a name="lex-runtime_PutSession-request-dialogAction"></a>
봇이 대화를 수행하기 위해 취해야 할 다음 조치를 설정합니다.  
유형: [DialogAction](API_runtime_DialogAction.md)객체  
필수 여부: 아니요

 ** [recentIntentSummaryView](#API_runtime_PutSession_RequestSyntax) **   <a name="lex-runtime_PutSession-request-recentIntentSummaryView"></a>
봇에 대한 최근 의도 요약. 의도 요약 보기를 사용하여 의도에 체크포인트 라벨을 설정하고 의도의 속성을 수정할 수 있습니다. 또한 이를 사용하여 의도 요약 개체를 제거하거나 목록에서 추가할 수 있습니다.  
목록에 수정하거나 추가하는 의도는 봇에 적합해야 합니다. 예를 들어 의도 이름은 봇에 대해 유효해야 합니다. 다음의 값을 제공해야 합니다.  
+  `intentName` 
+ 슬롯 이름
+  `slotToElict` 
`PutSession` 요청에 `recentIntentSummaryView` 파라미터를 보내면 새 요약 보기의 콘텐츠가 이전 요약 보기를 대체합니다. 예를 들어 `GetSession` 요청이 요약 보기에서 세 개의 의도를 반환하고 요약 보기에서 하나의 의도로 `PutSession`를 호출하는 경우 다음 `GetSession`에 대한 호출에서는 하나의 의도만 반환됩니다.  
타입: [IntentSummary](API_runtime_IntentSummary.md)객체 배열  
배열 구성원: 최소수는 0개입니다. 최대 항목 수는 3개.  
필수 여부: 아니요

 ** [sessionAttributes](#API_runtime_PutSession_RequestSyntax) **   <a name="lex-runtime_PutSession-request-sessionAttributes"></a>
세션별 컨텍스트 정보를 나타내는 키/값 페어의 맵입니다. Amazon Lex와 클라이언트 애플리케이션 간에 전달되는 요청별 정보를 포함합니다.  
유형: 문자열 간 맵  
필수 항목 여부: 아니요

## 응답 구문
<a name="API_runtime_PutSession_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-Type: contentType
x-amz-lex-intent-name: intentName
x-amz-lex-slots: slots
x-amz-lex-session-attributes: sessionAttributes
x-amz-lex-message: message
x-amz-lex-encoded-message: encodedMessage
x-amz-lex-message-format: messageFormat
x-amz-lex-dialog-state: dialogState
x-amz-lex-slot-to-elicit: slotToElicit
x-amz-lex-session-id: sessionId
x-amz-lex-active-contexts: activeContexts

audioStream
```

## 응답 요소
<a name="API_runtime_PutSession_ResponseElements"></a>

작업이 성공하면 서비스가 HTTP 200 응답을 반송합니다.

응답에 다음 HTTP 헤더가 반환됩니다.

 ** [activeContexts](#API_runtime_PutSession_ResponseSyntax) **   <a name="lex-runtime_PutSession-response-activeContexts"></a>
세션에 대해 활성화된 컨텍스트 목록.

 ** [contentType](#API_runtime_PutSession_ResponseSyntax) **   <a name="lex-runtime_PutSession-response-contentType"></a>
요청의 `Accept` HTTP 헤더에 지정된 콘텐츠 유형입니다.

 ** [dialogState](#API_runtime_PutSession_ResponseSyntax) **   <a name="lex-runtime_PutSession-response-dialogState"></a>
  
+  `ConfirmIntent` - Amazon Lex는 의도를 이행하기 전에 의도를 확인하기 위해 “예” 또는 “아니요” 응답을 기대하고 있습니다.
+  `ElicitIntent` - Amazon Lex는 사용자의 의도를 이끌어내고자 합니다.
+  `ElicitSlot`- Amazon Lex는 현재 의도에 사용할 슬롯의 값을 예상하고 있습니다.
+  `Failed` - 사용자와의 대화가 실패했음을 전달합니다. 이는 사용자가 서비스의 프롬프트에 적절한 응답을 제공하지 않거나 Lambda 함수가 의도를 이행하지 못하는 경우 등 다양한 이유로 발생할 수 있습니다.
+  `Fulfilled` - Lambda 함수가 의도를 성공적으로 수행했음을 전달합니다.
+  `ReadyForFulfillment` - 클라이언트가 의도를 이행해야 한다는 것을 전달합니다.
유효한 값: `ElicitIntent | ConfirmIntent | ElicitSlot | Fulfilled | ReadyForFulfillment | Failed` 

 ** [encodedMessage](#API_runtime_PutSession_ResponseSyntax) **   <a name="lex-runtime_PutSession-response-encodedMessage"></a>
사용자에게 제시해야 할 다음 메시지입니다.  
`encodedMessage` 필드는 base-64로 인코딩됩니다. 값을 사용하려면 먼저 필드를 디코딩해야 합니다.  
길이 제약: 최소 길이는 1. 최대 길이는 1,366.

 ** [intentName](#API_runtime_PutSession_ResponseSyntax) **   <a name="lex-runtime_PutSession-response-intentName"></a>
현재 의도의 이름.

 ** [message](#API_runtime_PutSession_ResponseSyntax) **   <a name="lex-runtime_PutSession-response-message"></a>
 *이 헤더는 더 이상 사용되지 않습니다.*  
사용자에게 제시해야 할 다음 메시지입니다.  
이 필드는 de-de, en-AU, en-GB, en-US, es-419, es-ES, es-US, fr-CA, fr-FR 및 it-IT 로캘에서만 사용할 수 있습니다. 다른 모든 로캘에서는 이 `message` 필드가 null입니다. 대신에 `encodedMessage` 필드를 사용해야 합니다.  
길이 제약: 최소 길이 1. 최대 길이는 1,024.

 ** [messageFormat](#API_runtime_PutSession_ResponseSyntax) **   <a name="lex-runtime_PutSession-response-messageFormat"></a>
응답 메시지의 형식. 다음 값 중 하나입니다.  
+  `PlainText` - 메시지에 일반 UTF-8 텍스트가 포함됩니다.
+  `CustomPayload` - 메시지는 클라이언트의 사용자 지정 형식입니다.
+  `SSML` - 메시지에 음성 출력용으로 서식이 지정된 텍스트가 포함됩니다.
+  `Composite` - 메시지에는 의도 생성 시 메시지가 할당된 그룹의 메시지가 하나 이상 포함된 이스케이프된 JSON 개체가 포함되어 있습니다.
유효한 값: `PlainText | CustomPayload | SSML | Composite` 

 ** [sessionAttributes](#API_runtime_PutSession_ResponseSyntax) **   <a name="lex-runtime_PutSession-response-sessionAttributes"></a>
세션별 컨텍스트 정보를 나타내는 키/값 페어의 맵입니다.

 ** [sessionId](#API_runtime_PutSession_ResponseSyntax) **   <a name="lex-runtime_PutSession-response-sessionId"></a>
세션에 대한 고유 식별자입니다.

 ** [slots](#API_runtime_PutSession_ResponseSyntax) **   <a name="lex-runtime_PutSession-response-slots"></a>
Amazon Lex가 대화 중에 사용자 입력에서 감지한 0개 이상의 의도 슬롯의 맵입니다.  
Amazon Lex는 슬롯에 대한 예상 값을 가진 해결 목록을 생성합니다. 반환되는 값은 슬롯 유형이 생성되거나 업데이트될 때 선택된 `valueSelectionStrategy`에 따라 결정됩니다. `valueSelectionStrategy`을 `ORIGINAL_VALUE`로 설정하면 사용자 값이 슬롯 값과 유사한 경우 사용자가 제공한 값이 반환됩니다. `valueSelectionStrategy`가 `TOP_RESOLUTION`로 설정된 경우, Amazon Lex는 해결 목록의 첫 번째 값을 반환하고, 해결 목록이 없는 경우 null을 반환합니다. `valueSelectionStrategy`를 지정하지 않으면 기본값은 `ORIGINAL_VALUE`입니다.

 ** [slotToElicit](#API_runtime_PutSession_ResponseSyntax) **   <a name="lex-runtime_PutSession-response-slotToElicit"></a>
`dialogState`이 `ElicitSlot`인 경우 Amazon Lex가 값을 추출하는 슬롯의 이름을 반환합니다.

응답은 다음 내용을 HTTP 본문으로 반환합니다.

 ** [audioStream](#API_runtime_PutSession_ResponseSyntax) **   <a name="lex-runtime_PutSession-response-audioStream"></a>
사용자에게 전달할 메시지의 오디오 버전입니다.

## 오류
<a name="API_runtime_PutSession_Errors"></a>

 ** BadGatewayException **   
Amazon Lex 봇이 아직 구축 중이거나 종속 서비스 중 하나(Amazon Polly, AWS Lambda) 가 내부 서비스 오류로 인해 장애가 발생했습니다.  
HTTP 상태 코드: 502

 ** BadRequestException **   
 요청 검증이 실패했거나, 컨텍스트에 사용 가능한 메시지가 없거나, 봇 빌드가 실패했거나, 아직 진행 중이거나, 빌드되지 않은 변경 사항이 포함되어 있습니다.  
HTTP 상태 코드: 400

 ** ConflictException **   
 두 클라이언트가 동일한 AWS 계정, Amazon Lex 봇 및 사용자 ID를 사용하고 있습니다.  
HTTP 상태 코드: 409

 ** DependencyFailedException **   
 AWS Lambda 또는 Amazon Polly와 같은 종속 서비스 중 하나에서 예외가 발생했습니다. 예를 들어,   
+ Amazon Lex에 Lambda 함수를 호출할 수 있는 충분한 권한이 없는 경우.
+ Lambda 함수를 실행하는 데 30초 이상 걸리는 경우.
+ 이행 Lambda 함수가 슬롯 값을 제거하지 않고 `Delegate` 대화 작업을 반환하는 경우.
HTTP 상태 코드: 424

 ** InternalFailureException **   
내부 서비스 오류. 호출을 다시 시도하세요.  
HTTP 상태 코드: 500

 ** LimitExceededException **   
제한 초과함.  
HTTP 상태 코드: 429

 ** NotAcceptableException **   
요청의 수락 헤더에 유효한 값이 없습니다.  
HTTP 상태 코드: 406

 ** NotFoundException **   
참조된 리소스(예: Amazon Lex 봇 또는 별칭)를 찾을 수 없습니다.  
HTTP 상태 코드: 404

## 참고
<a name="API_runtime_PutSession_SeeAlso"></a>

언어별 AWS SDKs
+  [AWS 명령줄 인터페이스 V2](https://docs.aws.amazon.com/goto/cli2/runtime.lex-2016-11-28/PutSession) 
+  [AWS .NET V4용 SDK](https://docs.aws.amazon.com/goto/DotNetSDKV4/runtime.lex-2016-11-28/PutSession) 
+  [AWS SDK for C\$1\$1](https://docs.aws.amazon.com/goto/SdkForCpp/runtime.lex-2016-11-28/PutSession) 
+  [AWS SDK for Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/runtime.lex-2016-11-28/PutSession) 
+  [AWS Java V2용 SDK](https://docs.aws.amazon.com/goto/SdkForJavaV2/runtime.lex-2016-11-28/PutSession) 
+  [AWS SDK for JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/runtime.lex-2016-11-28/PutSession) 
+  [AWS SDK for Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/runtime.lex-2016-11-28/PutSession) 
+  [AWS PHP V3용 SDK](https://docs.aws.amazon.com/goto/SdkForPHPV3/runtime.lex-2016-11-28/PutSession) 
+  [AWS Python용 SDK](https://docs.aws.amazon.com/goto/boto3/runtime.lex-2016-11-28/PutSession) 
+  [AWS SDK for Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/runtime.lex-2016-11-28/PutSession) 