Amazon Lex V2를 사용하는 경우 Amazon Lex V2 가이드를 대신 참조하십시오.
Amazon Lex V1을 사용하는 경우 봇을 Amazon Lex V2로 업그레이드하는하는 것이 좋습니다. 더 이상 V1에 새로운 기능을 추가하지 않으므로 모든 새 봇에 V2를 사용할 것을 강력히 권장합니다.
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
PutBot
Amazon Lex 대화형 봇을 생성하거나 기존 봇을 교체합니다. 봇을 생성하거나 업데이트할 때는 이름, 로캘, 봇이 13세 미만의 어린이를 대상으로 하는지 여부만 지정하면 됩니다. 이를 사용하여 나중에 의도를 추가하거나 기존 봇에서 의도를 제거할 수 있습니다. 최소 정보로 봇을 생성하면 봇이 생성되거나 업데이트되지만 Amazon Lex는 응답을 반환합니다
FAILED
. 하나 이상의 의도를 추가한 후 봇을 구축할 수 있습니다. Amazon Lex에 대한 자세한 내용은 Amazon Lex: 작동 방식를 참조하십시오.
기존 봇의 이름을 지정하는 경우, 요청의 필드가 봇 $LATEST
버전의 기존 값을 대체합니다. Amazon Lex는 요청에서 값을 제공하지 않은 모든 필드를 제거합니다. 단, 기본값으로 설정된 idleTTLInSeconds
및 privacySettings
필드는 예외입니다. 필수 필드 값을 지정하지 않으면 Amazon Lex에서 예외가 발생합니다.
이 작업에는 lex:PutBot
액션에 대한 권한이 필요합니다. 자세한 내용은 Amazon Lex의 Identity and Access Management을 참조하세요.
요청 구문
PUT /bots/name
/versions/$LATEST HTTP/1.1
Content-type: application/json
{
"abortStatement": {
"messages": [
{
"content": "string
",
"contentType": "string
",
"groupNumber": number
}
],
"responseCard": "string
"
},
"checksum": "string
",
"childDirected": boolean
,
"clarificationPrompt": {
"maxAttempts": number
,
"messages": [
{
"content": "string
",
"contentType": "string
",
"groupNumber": number
}
],
"responseCard": "string
"
},
"createVersion": boolean
,
"description": "string
",
"detectSentiment": boolean
,
"enableModelImprovements": boolean
,
"idleSessionTTLInSeconds": number
,
"intents": [
{
"intentName": "string
",
"intentVersion": "string
"
}
],
"locale": "string
",
"nluIntentConfidenceThreshold": number
,
"processBehavior": "string
",
"tags": [
{
"key": "string
",
"value": "string
"
}
],
"voiceId": "string
"
}
URI 요청 파라미터
요청은 다음 URI 파라미터를 사용합니다.
- name
-
봇의 이름. 이름은 대/소문자를 구분하지 않습니다.
길이 제약: 최소 길이는 2. 최대 길이는 50.
패턴:
^([A-Za-z]_?)+$
필수 사항 여부: Yes
요청 본문
요청은 JSON 형식으로 다음 데이터를 받습니다.
- abortStatement
-
Amazon Lex는 컨텍스트에서 사용자의 입력을 이해할 수 없는 경우 정보를 추출하려고 몇 번 시도합니다. 그런 다음 Amazon Lex는
abortStatement
에서 정의한 메시지를 사용자에게 보낸 다음 대화를 취소합니다. 재시도 횟수를 설정하려면 슬롯 유형의valueElicitationPrompt
필드를 사용하십시오.예를 들어 피자 주문 봇에서 Amazon Lex는 사용자에게 "어떤 종류의 크러스트를 원하시나요?"라고 물을 수 있습니다. 사용자의 응답이 예상 응답 중 하나가 아닌 경우(예: "얇은 크러스트", "딥 디쉬" 등), Amazon Lex는 올바른 응답을 몇 번 더 유도하려고 합니다.
예를 들어 피자 주문 애플리케이션에서는,
OrderPizza
은 이러한 의도 중 하나일 수 있습니다. 이 의도에는CrustType
슬롯이 필요할 수 있습니다.CrustType
슬롯을 생성할 때valueElicitationPrompt
필드를 지정합니다.폴백 의도를 정의한 경우 취소 명령문이 사용자에게 전송되지 않고 대신 폴백 의도가 사용됩니다. 자세한 내용은 AMAZON을 참조하십시오. FallbackIntent.
유형: Statement객체
필수 항목 여부: 아니요
- checksum
-
$LATEST
버전의 특정 개정 버전을 식별합니다.새 봇을 만들 때는
checksum
필드를 비워 두십시오. 체크섬을 지정하면BadRequestException
예외가 발생합니다.봇을 업데이트하려면
checksum
필드를 해당 버전의 최신 수정$LATEST
버전의 체크섬으로 설정하십시오.checksum
필드를 지정하지 않거나 체크섬이$LATEST
버전과 일치하지 않으면PreconditionFailedException
예외가 발생합니다.타입: 문자열
필수사항: 아니요
- childDirected
-
Amazon Lex Model Building Service로 만든 각 Amazon Lex 봇에 대해, Amazon Lex 사용이, 전체 또는 일부가, 13세 미만 어린이를 대상으로 하거나 대상으로 하는 웹 사이트, 프로그램 또는 기타 애플리케이션과 관련이 있는지 여부 및 어린이 온라인 개인정보 보호 법률(COPPA)을 준수하는지를
childDirected
필드의true
또는false
를 지정하여 지정해야 합니다.childDirected
필드에true
을 지정함으로써 사용자는 Amazon Lex 사용이 13세 미만 및 COPPA 적용 대상 아동 전체 또는 일부를 대상으로 하는 웹 사이트, 프로그램 또는 기타 애플리케이션과 관련이 있음을 확인합니다.childDirected
필드에false
을 지정함으로써 사용자는 Amazon Lex 사용이 13세 미만 및 COPPA 적용 대상 아동 전체 또는 일부를 대상으로 하는 웹 사이트, 프로그램 또는 기타 애플리케이션과 관련이 없음을 확인합니다. 사용자는 Amazon Lex 사용이 13세 미만 및 COPPA 적용 대상 아동 전체 또는 일부를 대상으로 하는 웹 사이트, 프로그램 또는 기타 애플리케이션과 관련이 있는지 여부를 정확하게 반영하지 않는childDirected
필드에 대한 기본값을 지정할 수 없습니다.Amazon Lex의 사용이 전체 또는 부분적으로 13세 미만 어린이를 대상으로 하는 웹 사이트, 프로그램 또는 기타 애플리케이션과 관련된 경우 COPPA에 따라 검증 가능한 필수 부모 동의를 얻어야 합니다. 전체 또는 일부를 13세 미만 어린이를 대상으로 하거나 대상으로 하는 웹 사이트, 프로그램 또는 기타 애플리케이션과 관련된 Amazon Lex 사용에 관한 정보는 Amazon Lex FAQ
를 참조하십시오. 타입: 부울
필수 여부: 예
- clarificationPrompt
-
Amazon Lex는 사용자의 의도를 이해하지 못할 경우 이 메시지를 사용하여 확인을 구합니다. Amazon Lex가 설명 프롬프트를 반복해야 하는 횟수를 지정하려면
maxAttempts
필드를 사용하십시오. Amazon Lex가 여전히 이해하지 못하면abortStatement
필드로 메시지를 보냅니다.설명 프롬프트를 생성할 때는 사용자의 올바른 응답을 제안하는지 확인하십시오. 예를 들어 피자와 음료를 주문하는 봇의 경우 다음과 같은 설명 프롬프트를 생성할 수 있습니다. "어떻게 하시겠습니까? '음로 주문' 또는 '피자 주문'라고 말할 수 있습니다.
폴백 의도를 정의한 경우
maxAttempts
필드에 정의된 횟수만큼 설명 프롬프트가 반복되면 해당 의도가 호출됩니다. 자세한 내용은 AMAZON을 참조하십시오. FallbackIntent.확인 프롬프트를 정의하지 않으면 Amazon Lex는 런타임 시 다음과 같은 세 가지 경우에 400 잘못된 요청 예외를 반환합니다.
-
후속 프롬프트 - 사용자가 후속 프롬프트에 응답하지만, 의도를 제공하지 않는 경우. 예를 들어, "오늘 다른 것을 원하시나요?"라는 후속 프롬프트에 대한 응답으로 사용자가 "예"라고 한 경우 Amazon Lex에 사용자의 의도를 파악하기 위한 확인 프롬프트가 없기 때문에 400 잘못된 요청 예외가 반환됩니다.
-
Lambda 함수 - Lambda 함수를 사용하는 경우
ElicitIntent
대화 상자 유형을 반환합니다. Amazon Lex에 사용자의 의도를 파악하기 위한 확인 프롬프트가 없기 때문에 400 잘못된 요청 예외가 반환됩니다. -
PutSession 오퍼레이션 -
PutSession
오퍼레이션을 사용할 때ElicitIntent
다이얼로그 유형을 전송합니다. Amazon Lex에 사용자의 의도를 파악하기 위한 확인 프롬프트가 없기 때문에 400 잘못된 요청 예외가 반환됩니다.
유형: Prompt객체
필수 항목 여부: 아니요
-
- createVersion
-
true
로 설정하면 번호가 매겨진 새 버전의 봇이 생성됩니다. 이는CreateBotVersion
오퍼레이션을 호출하는 것과 같습니다.createVersion
를 지정하지 않으면 기본값은false
입니다.타입: 부울
필수 항목 여부: 아니요
- description
-
봇에 대한 설명입니다.
타입: 문자열
길이 제한: 최소 길이는 0. 최대 길이는 200.
필수 여부: 아니요
- detectSentiment
-
true
로 설정하면 감정 분석을 위해 사용자 표현이 Amazon Comprehend로 전송됩니다.detectSentiment
를 지정하지 않으면 기본값은false
입니다.타입: 부울
필수 항목 여부: 아니요
- enableModelImprovements
-
자연어 이해 개선에 대한 액세스를 가능하게
true
로 설정합니다.enableModelImprovements
매개변수를true
로 설정하면nluIntentConfidenceThreshold
매개변수를 사용하여 신뢰도 점수를 구성할 수 있습니다. 자세한 내용은 신뢰도 점수를 참조하세요.특정 지역에서만
enableModelImprovements
매개변수를 설정할 수 있습니다. 매개변수를true
로 설정하면 봇이 정확도 개선에 액세스합니다.en-US 로캘에
enableModelImprovements
매개변수를false
로 설정할 수 있는 지역은 다음과 같습니다.-
미국 동부(버지니아 북부)(us-east-1)
-
미국 서부(오레곤)(us-west-2)
-
아시아 태평양(시드니)(ap-southeast-2)
-
EU(아일랜드)(eu-west-1)
다른 지역 및 로캘에서는
enableModelImprovements
매개변수가 기본적으로true
로 설정됩니다. 이러한 지역 및 로캘에서 매개변수를false
로 설정하면ValidationException
예외가 발생합니다.타입: 부울
필수 항목 여부: 아니요
-
- idleSessionTTLInSeconds
-
Amazon Lex가 대화에서 수집된 데이터를 유지하는 최대 시간(초) 입니다.
사용자 상호 작용 세션은 지정된 시간 동안 활성 상태로 유지됩니다. 이 시간 동안 대화가 발생하지 않으면 세션이 만료되고 Amazon Lex는 제한 시간 전에 제공된 모든 데이터를 삭제합니다.
예를 들어, 사용자가 OrderPizza 인텐트를 선택했지만 주문을 하는 도중에 거절당한다고 가정해 보겠습니다. 사용자가 지정된 시간 내에 주문을 완료하지 않으면 Amazon Lex는 수집한 슬롯 정보를 삭제하므로 사용자는 처음부터 다시 시작해야 합니다.
PutBot
작업 요청에idleSessionTTLInSeconds
요소를 포함하지 않는 경우 Amazon Lex는 기본값을 사용합니다. 요청이 기존 봇을 대체하는 경우에도 마찬가지입니다.기본값은 300초(5분)입니다.
유형: 정수
유효한 범위: 최소값은 60. 최대값은 86,400.
필수 여부: 아니요
- intents
-
Intent
객체 어레이. 각 의도는 사용자가 표현할 수 있는 명령을 나타냅니다. 예를 들어 피자 주문 봇은 인텐트를 지원할 수 있습니다. OrderPizza 자세한 정보는 Amazon Lex: 작동 방식을 참조하세요.유형: Intent 객체 배열
필수: 아니요
- locale
-
봇의 타겟 로캘을 지정합니다. 봇에서 사용되는 모든 의도는 봇의 로캘과 호환되어야 합니다.
기본값은
en-US
입니다.타입: 문자열
유효 값:
de-DE | en-AU | en-GB | en-IN | en-US | es-419 | es-ES | es-US | fr-FR | fr-CA | it-IT | ja-JP | ko-KR
필수 사항 여부: 예
- nluIntentConfidenceThreshold
-
or PostText응답에서 대체 인텐트를 반환할 때 Amazon Lex가
AMAZON.FallbackIntent
AMAZON.KendraSearchIntent
, 또는 둘 다를 삽입할 임계값을 결정합니다. PostContentAMAZON.FallbackIntent
봇용으로 구성된 경우에만 삽입됩니다.AMAZON.KendraSearchIntent
다음 지역의 신뢰도 점수를 사용하려면
enableModelImprovements
매개변수를true
로 설정해야 합니다.-
미국 동부(버지니아 북부)(us-east-1)
-
미국 서부(오레곤)(us-west-2)
-
아시아 태평양(시드니)(ap-southeast-2)
-
EU(아일랜드)(eu-west-1)
다른 지역 및 로캘에서는
enableModelImprovements
매개변수가 기본적으로true
로 설정됩니다.예를 들어, 봇이 신뢰 임계값 0.80 및
AMAZON.FallbackIntent
으로 구성되어 있다고 가정하겠습니다. Amazon Lex는 IntentA(0.70), IntentB(0.60), IntentC(0.50) 라는 신뢰도 점수를 가진 세 가지 대체 의도를 반환합니다.PostText
작업에 대한 응답은 다음과 같습니다.-
아마존. FallbackIntent
-
IntentA
-
IntentB
-
IntentC
유형: Double
유효한 범위: 최소값 0. 최댓값은 1.
필수 여부: 아니요
-
- processBehavior
-
processBehavior
요소를BUILD
로 설정하면 Amazon Lex는 봇이 실행될 수 있도록 봇을 빌드합니다. 요소를SAVE
로 설정하면, Amazon Lex는 봇을 저장하지만 빌드하지는 않습니다.값을 지정하지 않을 경우 기본값은
BUILD
입니다.타입: 문자열
유효 값:
SAVE | BUILD
필수 여부: 아니요
-
봇에 추가할 태그의 목록입니다. 봇을 생성할 때만 태그를 추가할 수 있으며 봇에서 태그를 업데이트하는
PutBot
작업을 사용할 수는 없습니다. 태그를 업데이트하려면TagResource
작업을 사용합니다.유형: Tag 객체의 배열
어레이 멤버: 최소 항목 수 0개. 최대 항목 수 200개.
필수 여부: 아니요
- voiceId
-
Amazon Lex가 사용자와의 음성 상호 작용에 사용하는 Amazon Polly 음성 ID입니다. 음성에 구성된 로캘은 봇의 로캘과 일치해야 합니다. 자세한 내용은 Amazon Polly 개발자 안내서의 Amazon Polly 음성을 참조하세요.
타입: 문자열
필수사항: 아니요
응답 구문
HTTP/1.1 200
Content-type: application/json
{
"abortStatement": {
"messages": [
{
"content": "string",
"contentType": "string",
"groupNumber": number
}
],
"responseCard": "string"
},
"checksum": "string",
"childDirected": boolean,
"clarificationPrompt": {
"maxAttempts": number,
"messages": [
{
"content": "string",
"contentType": "string",
"groupNumber": number
}
],
"responseCard": "string"
},
"createdDate": number,
"createVersion": boolean,
"description": "string",
"detectSentiment": boolean,
"enableModelImprovements": boolean,
"failureReason": "string",
"idleSessionTTLInSeconds": number,
"intents": [
{
"intentName": "string",
"intentVersion": "string"
}
],
"lastUpdatedDate": number,
"locale": "string",
"name": "string",
"nluIntentConfidenceThreshold": number,
"status": "string",
"tags": [
{
"key": "string",
"value": "string"
}
],
"version": "string",
"voiceId": "string"
}
응답 요소
작업이 성공하면 서비스가 HTTP 200 응답을 반송합니다.
다음 데이터는 서비스에 의해 JSON 형식으로 반환됩니다.
- abortStatement
-
Amazon Lex에서 대화를 취소하는 데 사용하는 메시지입니다. 자세한 내용은 PutBot을 참조하세요.
유형: Statement 객체
- checksum
-
생성한 봇의 체크섬.
타입: 문자열
- childDirected
-
Amazon Lex Model Building Service로 만든 각 Amazon Lex 봇에 대해, Amazon Lex 사용이, 전체 또는 일부가, 13세 미만 어린이를 대상으로 하거나 대상으로 하는 웹 사이트, 프로그램 또는 기타 애플리케이션과 관련이 있는지 여부 및 어린이 온라인 개인정보 보호 법률(COPPA)을 준수하는지를
childDirected
필드의true
또는false
를 지정하여 지정해야 합니다.childDirected
필드에true
을 지정함으로써 사용자는 Amazon Lex 사용이 13세 미만 및 COPPA 적용 대상 아동 전체 또는 일부를 대상으로 하는 웹 사이트, 프로그램 또는 기타 애플리케이션과 관련이 있음을 확인합니다.childDirected
필드에false
을 지정함으로써 사용자는 Amazon Lex 사용이 13세 미만 및 COPPA 적용 대상 아동 전체 또는 일부를 대상으로 하는 웹 사이트, 프로그램 또는 기타 애플리케이션과 관련이 없음을 확인합니다. 사용자는 Amazon Lex 사용이 13세 미만 및 COPPA 적용 대상 아동 전체 또는 일부를 대상으로 하는 웹 사이트, 프로그램 또는 기타 애플리케이션과 관련이 있는지 여부를 정확하게 반영하지 않는childDirected
필드에 대한 기본값을 지정할 수 없습니다.Amazon Lex의 사용이 전체 또는 부분적으로 13세 미만 어린이를 대상으로 하는 웹 사이트, 프로그램 또는 기타 애플리케이션과 관련된 경우 COPPA에 따라 검증 가능한 필수 부모 동의를 얻어야 합니다. 전체 또는 일부를 13세 미만 어린이를 대상으로 하거나 대상으로 하는 웹 사이트, 프로그램 또는 기타 애플리케이션과 관련된 Amazon Lex 사용에 관한 정보는 Amazon Lex FAQ
를 참조하십시오. 타입: 부울
- clarificationPrompt
-
Amazon Lex 가 사용자의 의도를 이해하지 못할 때 사용하는 프롬프트입니다. 자세한 정보는 PutBot을 참조하세요.
유형: Prompt 객체
- createdDate
-
봇이 생성된 날짜.
유형: 타임스탬프
- createVersion
-
봇의 새 버전이 생성된 경우
True
. 요청에서createVersion
필드를 지정하지 않은 경우 응답에서createVersion
필드는 거짓으로 설정됩니다.타입: 부울
- description
-
봇에 대한 설명입니다.
타입: 문자열
길이 제한: 최소 길이는 0. 최대 길이는 200.
- detectSentiment
-
봇이 감정 분석을 위해 사용자 발언을 Amazon Comprehend로 보내도록 구성된 경우
true
. 요청에서detectSentiment
필드를 지정하지 않은 경우 응답에서detectSentiment
필드는false
입니다.타입: 부울
- enableModelImprovements
-
봇이 정확도 개선을 사용하는지 여부를 나타냅니다.
true
은 봇이 개선 사항을 사용하고 있음을 나타내며, 그렇지 않으면,false
입니다.타입: 부울
- failureReason
-
만약
status
이FAILED
라면, Amazon Lex는 봇 구축에 실패한 이유를 제공합니다.타입: 문자열
- idleSessionTTLInSeconds
-
Amazon Lex가 대화에서 수집된 데이터를 유지하는 최대 시간입니다. 자세한 정보는 PutBot을 참조하세요.
유형: 정수
유효한 범위: 최소값은 60. 최대값은 86,400.
- intents
-
Intent
객체 어레이. 자세한 내용은 PutBot을 참조하세요.유형: Intent 객체 배열
- lastUpdatedDate
-
봇이 업데이트된 날짜. 리소스를 생성할 때 생성 날짜 및 최종 업데이트 날짜가 동일합니다.
유형: 타임스탬프
- locale
-
봇의 타겟 로캘입니다.
타입: 문자열
유효 값:
de-DE | en-AU | en-GB | en-IN | en-US | es-419 | es-ES | es-US | fr-FR | fr-CA | it-IT | ja-JP | ko-KR
- name
-
봇의 이름.
타입: 문자열
길이 제한: 최소 길이는 2. 최대 길이는 50.
패턴:
^([A-Za-z]_?)+$
- nluIntentConfidenceThreshold
-
또는 PostText응답에서 대체 인텐트를 반환할 때 Amazon Lex가
AMAZON.FallbackIntent
AMAZON.KendraSearchIntent
, 또는 둘 다를 삽입하는 PostContent위치를 결정하는 점수입니다.AMAZON.FallbackIntent
모든 인텐트에 대한 신뢰도 점수가 이 값보다 낮은 경우 삽입됩니다.AMAZON.KendraSearchIntent
봇용으로 구성된 경우에만 삽입됩니다.유형: Double
유효한 범위: 최소값 0. 최댓값은 1.
- status
-
processBehavior
이BUILD
로 설정된 봇 생성 요청을 보내면 Amazon Lex는status
응답 요소를BUILDING
로 설정합니다.READY_BASIC_TESTING
상태에서는 슬롯 유형에서 봇의 의도와 값에 대해 구성된 표현과 정확히 일치하는 사용자 입력으로 봇을 테스트할 수 있습니다.Amazon Lex가 봇을 빌드하지 못하는 경우에는
status
을FAILED
로 설정합니다. Amazon Lex 는failureReason
응답 요소에 실패 이유를 반환합니다.processBehavior
을SAVE
로 설정하면 Amazon Lex에서 상태 코드를NOT BUILT
로 설정합니다.봇이
READY
상태가 되면 봇을 테스트하고 게시할 수 있습니다.타입: 문자열
유효 값:
BUILDING | READY | READY_BASIC_TESTING | FAILED | NOT_BUILT
-
봇과 연결된 태그 목록입니다.
유형: Tag객체 어레이
어레이 멤버: 최소 항목 수 0개. 최대 항목 수 200개.
- version
-
봇의 버전. 새 봇의 경우 버전은 항상
$LATEST
입니다.유형: 문자열
길이 제한: 최소 길이는 1. 최대 길이는 64.
패턴:
\$LATEST|[0-9]+
- voiceId
-
Amazon Lex가 사용자와의 음성 상호 작용에 사용하는 Amazon Polly 음성 ID입니다. 자세한 정보는 PutBot을 참조하세요.
타입: 문자열
Errors
- BadRequestException
-
요청이 제대로 구성되지 않았습니다. 예를 들어, 값이 유효하지 않거나 필수 필드가 누락된 경우입니다. 필드 값을 확인한 후 다시 시도하세요.
HTTP 상태 코드: 400
- ConflictException
-
요청을 처리하는 동안 충돌이 발생했습니다. 다시 요청해 보세요.
HTTP 상태 코드: 409
- InternalFailureException
-
내부 Amazon Lex 오류가 발생했습니다. 요청을 다시 시도하세요.
HTTP 상태 코드: 500
- LimitExceededException
-
요청이 한도를 초과했습니다. 다시 요청해 보세요.
HTTP 상태 코드: 429
- PreconditionFailedException
-
변경하려는 리소스의 체크섬이 요청의 체크섬과 일치하지 않습니다. 리소스의 체크섬을 확인한 후 다시 시도하세요.
HTTP 상태 코드: 412
참고
언어별 AWS SDK 중 하나에서 이 API를 사용하는 방법에 대한 자세한 내용은 다음을 참조하십시오.