PutSession - Amazon Lex V1

Amazon Lex V2를 사용하는 경우 Amazon Lex V2 가이드를 대신 참조하십시오.

 

Amazon Lex V1을 사용하는 경우 봇을 Amazon Lex V2로 업그레이드하는하는 것이 좋습니다. 더 이상 V1에 새로운 기능을 추가하지 않으므로 모든 새 봇에 V2를 사용할 것을 강력히 권장합니다.

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

PutSession

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

자세한 내용은 세션 관리를 참조하세요.

Request Syntax

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 요청 파라미터

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

accept

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

세션 데이터를 포함하는 봇에 사용되는 별칭입니다.

필수 여부: 예

botName

세션 데이터가 들어있는 봇의 명칭.

필수 여부: 예

userId

클라이언트 애플리케이션 사용자의 ID입니다. Amazon Lex는 이를 사용하여 사용자와 봇의 대화를 식별합니다.

길이 제약: 최소 길이는 2. 최대 길이는 100.

패턴: [0-9a-zA-Z._:-]+

필수 사항 여부: Yes

요청 본문

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

activeContexts

요청에 대해 활성화된 컨텍스트 목록. 이전 의도가 이행될 때 또는 요청에 컨텍스트를 포함시켜 컨텍스트를 활성화할 수 있습니다.

컨텍스트 목록을 지정하지 않으면 Amazon Lex는 세션의 현재 컨텍스트 목록을 사용합니다. 빈 목록을 지정하면 세션의 모든 컨텍스트가 지워집니다.

유형: ActiveContext객체 어레이

배열 항목: 최소 항목 수는 0개. 최대 항목 수는 20개.

필수 여부: 아니요

dialogAction

봇이 대화를 수행하기 위해 취해야 할 다음 조치를 설정합니다.

유형: DialogAction객체

필수 항목 여부: 아니요

recentIntentSummaryView

봇에 대한 최근 의도 요약. 의도 요약 보기를 사용하여 의도에 체크포인트 라벨을 설정하고 의도의 속성을 수정할 수 있습니다. 또한 이를 사용하여 의도 요약 개체를 제거하거나 목록에서 추가할 수 있습니다.

목록에 수정하거나 추가하는 의도는 봇에 적합해야 합니다. 예를 들어 의도 이름은 봇에 대해 유효해야 합니다. 다음의 값을 제공해야 합니다.

  • intentName

  • 슬롯 이름

  • slotToElict

PutSession 요청에 recentIntentSummaryView 파라미터를 보내면 새 요약 보기의 콘텐츠가 이전 요약 보기를 대체합니다. 예를 들어 GetSession 요청이 요약 보기에서 세 개의 의도를 반환하고 요약 보기에서 하나의 의도로 PutSession를 호출하는 경우 다음 GetSession에 대한 호출에서는 하나의 의도만 반환됩니다.

유형: IntentSummary객체 어레이

어레이 멤버: 최소 항목 수 0개. 최대 항목 수는 3개.

필수 여부: 아니요

sessionAttributes

세션별 컨텍스트 정보를 나타내는 키/값 페어의 맵입니다. Amazon Lex와 클라이언트 애플리케이션 간에 전달되는 요청별 정보를 포함합니다.

유형: 문자열 간 맵

필수 여부: 아니요

응답 구문

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

응답 요소

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

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

activeContexts

세션에 대해 활성화된 컨텍스트 목록.

contentType

요청의 Accept HTTP 헤더에 지정된 콘텐츠 유형입니다.

dialogState

  • ConfirmIntent - Amazon Lex는 의도를 이행하기 전에 의도를 확인하기 위해 “예” 또는 “아니요” 응답을 기대하고 있습니다.

  • ElicitIntent - Amazon Lex는 사용자의 의도를 이끌어내고자 합니다.

  • ElicitSlot- Amazon Lex는 현재 의도에 사용할 슬롯의 값을 예상하고 있습니다.

  • Failed - 사용자와의 대화가 실패했음을 전달합니다. 이는 사용자가 서비스의 프롬프트에 적절한 응답을 제공하지 않거나 Lambda 함수가 의도를 이행하지 못하는 경우 등 다양한 이유로 발생할 수 있습니다.

  • Fulfilled - Lambda 함수가 의도를 성공적으로 수행했음을 전달합니다.

  • ReadyForFulfillment - 클라이언트가 의도를 이행해야 한다는 것을 전달합니다.

유효 값: ElicitIntent | ConfirmIntent | ElicitSlot | Fulfilled | ReadyForFulfillment | Failed

encodedMessage

사용자에게 제시해야 할 다음 메시지입니다.

encodedMessage 필드는 base-64로 인코딩됩니다. 값을 사용하려면 먼저 필드를 디코딩해야 합니다.

길이 제약: 최소 길이는 1. 최대 길이는 1,366.

intentName

현재 의도의 이름.

message

이 헤더는 더 이상 사용되지 않습니다.

사용자에게 제시해야 할 다음 메시지입니다.

이 필드는 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

응답 메시지의 형식. 다음 값 중 하나입니다.

  • PlainText - 메시지에 일반 UTF-8 텍스트가 포함됩니다.

  • CustomPayload - 메시지는 클라이언트의 사용자 지정 형식입니다.

  • SSML - 메시지에 음성 출력용으로 서식이 지정된 텍스트가 포함됩니다.

  • Composite - 메시지에는 의도 생성 시 메시지가 할당된 그룹의 메시지가 하나 이상 포함된 이스케이프된 JSON 개체가 포함되어 있습니다.

유효 값: PlainText | CustomPayload | SSML | Composite

sessionAttributes

세션별 컨텍스트 정보를 나타내는 키/값 페어의 맵입니다.

sessionId

세션에 대한 고유 식별자입니다.

slots

Amazon Lex가 대화 중에 사용자 입력에서 감지한 0개 이상의 의도 슬롯의 맵입니다.

Amazon Lex는 슬롯에 대한 예상 값을 가진 해결 목록을 생성합니다. 반환되는 값은 슬롯 유형이 생성되거나 업데이트될 때 선택된 valueSelectionStrategy에 따라 결정됩니다. valueSelectionStrategyORIGINAL_VALUE로 설정하면 사용자 값이 슬롯 값과 유사한 경우 사용자가 제공한 값이 반환됩니다. valueSelectionStrategyTOP_RESOLUTION로 설정된 경우, Amazon Lex는 해결 목록의 첫 번째 값을 반환하고, 해결 목록이 없는 경우 null을 반환합니다. valueSelectionStrategy를 지정하지 않으면 기본값은 ORIGINAL_VALUE입니다.

slotToElicit

dialogStateElicitSlot인 경우 Amazon Lex가 값을 추출하는 슬롯의 이름을 반환합니다.

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

audioStream

사용자에게 전달할 메시지의 오디오 버전입니다.

Errors

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

참고

언어별 AWS SDK 중 하나에서 이 API를 사용하는 방법에 대한 자세한 내용은 다음을 참조하십시오.