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
에 따라 결정됩니다.valueSelectionStrategy
을ORIGINAL_VALUE
로 설정하면 사용자 값이 슬롯 값과 유사한 경우 사용자가 제공한 값이 반환됩니다.valueSelectionStrategy
가TOP_RESOLUTION
로 설정된 경우, Amazon Lex는 해결 목록의 첫 번째 값을 반환하고, 해결 목록이 없는 경우 null을 반환합니다.valueSelectionStrategy
를 지정하지 않으면 기본값은ORIGINAL_VALUE
입니다. - slotToElicit
-
dialogState
이ElicitSlot
인 경우 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를 사용하는 방법에 대한 자세한 내용은 다음을 참조하십시오.