Amazon Lex V2를 사용하는 경우 Amazon Lex V2 가이드를 대신 참조하십시오.
Amazon Lex V1을 사용하는 경우 봇을 Amazon Lex V2로 업그레이드하는하는 것이 좋습니다. 더 이상 V1에 새로운 기능을 추가하지 않으므로 모든 새 봇에 V2를 사용할 것을 강력히 권장합니다.
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
PutIntent
의도를 생성하거나 기존 의도를 대체합니다.
사용자와 봇 간의 상호작용을 정의하려면 하나 이상의 의도를 사용합니다. 예를 들어 피자 주문 봇의 경우 OrderPizza
의도를 생성할 수 있습니다.
의도를 생성하거나 기존 의도를 대체하려면 다음을 제공해야 합니다.
-
의도 이름. 예를 들어
OrderPizza
입니다. -
샘플 표현. 예를 들어, "피자 하나 주문할 수 있을까요?" 및 "피자를 주문하고 싶어요."
-
수집해야 할 정보. 봇이 사용자에게 요청할 정보의 슬롯 유형을 지정합니다. 날짜 또는 시간과 같은 표준 슬롯 유형을 지정하거나 피자의 크기 및 크러스트와 같은 사용자 지정 슬롯 유형을 지정할 수 있습니다.
-
의도가 이행되는 방식. Lambda 함수를 제공하거나 의도 정보를 클라이언트 애플리케이션에 반환하도록 의도를 구성할 수 있습니다. Lambda 함수를 사용하는 경우 모든 의도 정보를 사용할 수 있게 되면 Amazon Lex는 Lambda 함수를 간접적으로 호출합니다. 의도 정보를 클라이언트 애플리케이션에 반환하도록 의도를 구성하는 경우.
요청에 다음과 같은 기타 선택적 정보를 지정할 수 있습니다.
-
사용자에게 의도를 확인하도록 요청하는 확인 프롬프트입니다. 예를 들어, "피자 주문할까요?"
-
의도가 이행된 후 사용자에게 보낼 결론 설명. 예를 들어, "피자를 주문했습니다."
-
사용자에게 추가 활동을 요청하는 후속 프롬프트. 예를 들어 "피자와 함께 음료를 주문하시겠습니까?"
의도를 업데이트하기 위해 기존 의도 이름을 지정하는 경우 Amazon Lex는 의도 $LATEST
버전의 값을 요청의 값으로 대체합니다. Amazon Lex는 요청에서 제공하지 않은 필드를 제거합니다. 필수 필드 값을 지정하지 않으면 Amazon Lex에서 예외가 발생합니다. 의도의 $LATEST
버전을 업데이트하면 해당 의도 $LATEST
버전을 사용하는 모든 봇의 status
필드는 NOT_BUILT
로 설정됩니다.
자세한 내용은 Amazon Lex: 작동 방식을 참조하세요.
이 작업에는 lex:PutIntent
액션에 대한 권한이 필요합니다.
Request Syntax
PUT /intents/name
/versions/$LATEST HTTP/1.1
Content-type: application/json
{
"checksum": "string
",
"conclusionStatement": {
"messages": [
{
"content": "string
",
"contentType": "string
",
"groupNumber": number
}
],
"responseCard": "string
"
},
"confirmationPrompt": {
"maxAttempts": number
,
"messages": [
{
"content": "string
",
"contentType": "string
",
"groupNumber": number
}
],
"responseCard": "string
"
},
"createVersion": boolean
,
"description": "string
",
"dialogCodeHook": {
"messageVersion": "string
",
"uri": "string
"
},
"followUpPrompt": {
"prompt": {
"maxAttempts": number
,
"messages": [
{
"content": "string
",
"contentType": "string
",
"groupNumber": number
}
],
"responseCard": "string
"
},
"rejectionStatement": {
"messages": [
{
"content": "string
",
"contentType": "string
",
"groupNumber": number
}
],
"responseCard": "string
"
}
},
"fulfillmentActivity": {
"codeHook": {
"messageVersion": "string
",
"uri": "string
"
},
"type": "string
"
},
"inputContexts": [
{
"name": "string
"
}
],
"kendraConfiguration": {
"kendraIndex": "string
",
"queryFilterString": "string
",
"role": "string
"
},
"outputContexts": [
{
"name": "string
",
"timeToLiveInSeconds": number
,
"turnsToLive": number
}
],
"parentIntentSignature": "string
",
"rejectionStatement": {
"messages": [
{
"content": "string
",
"contentType": "string
",
"groupNumber": number
}
],
"responseCard": "string
"
},
"sampleUtterances": [ "string
" ],
"slots": [
{
"defaultValueSpec": {
"defaultValueList": [
{
"defaultValue": "string
"
}
]
},
"description": "string
",
"name": "string
",
"obfuscationSetting": "string
",
"priority": number
,
"responseCard": "string
",
"sampleUtterances": [ "string
" ],
"slotConstraint": "string
",
"slotType": "string
",
"slotTypeVersion": "string
",
"valueElicitationPrompt": {
"maxAttempts": number
,
"messages": [
{
"content": "string
",
"contentType": "string
",
"groupNumber": number
}
],
"responseCard": "string
"
}
}
]
}
URI 요청 파라미터
요청은 다음 URI 파라미터를 사용합니다.
- name
-
의도의 이름. 이름은 대/소문자를 구분하지 않습니다.
이름은 기본 제공 의도 이름 또는 "AMAZON"이라고 표시된 기본 제공 의도 이름과 일치할 수 없습니다. 제거됨. 예를 들어
AMAZON.HelpIntent
라는 기본 제공 의도가 있기 때문에HelpIntent
라는 사용자 지정 의도를 생성할 수 없습니다.기본 제공 의도 목록은 Alexa Skills Kit
의 표준 기본 제공 의도를 참조하십시오. 길이 제약: 최소 길이 1. 최대 길이는 100.
패턴:
^([A-Za-z]_?)+$
필수 사항 여부: Yes
요청 본문
요청은 JSON 형식으로 다음 데이터를 받습니다.
- checksum
-
$LATEST
버전의 특정 개정 버전을 식별합니다.새 의도를 만들 때는
checksum
필드를 비워 두십시오. 체크섬을 지정하면BadRequestException
예외가 발생합니다.의도를 업데이트하려면
checksum
필드를 해당 버전의 가장 최신 수정$LATEST
버전의 체크섬으로 설정합니다.checksum
필드를 지정하지 않거나 체크섬이$LATEST
버전과 일치하지 않으면PreconditionFailedException
예외가 발생합니다.타입: 문자열
필수사항: 아니요
- conclusionStatement
-
Lambda 함수가 의도를 성공적으로 이행한 후 Amazon Lex가 사용자에게 전달하기를 원하는 설명.
이 요소는
fulfillmentActivity
에서 Lambda 함수를 제공하는 경우에만 관련이 있습니다. 의도를 클라이언트 애플리케이션에 반환하는 경우 이 요소를 지정할 수 없습니다.참고
followUpPrompt
및conclusionStatement
는 함께 사용할 수 없습니다. 하나만 지정할 수 있습니다.유형: Statement객체
필수 항목 여부: 아니요
- confirmationPrompt
-
사용자에게 의도를 확인하라는 프롬프트를 표시합니다. 이 질문에 예 또는 아니요로 답해야 합니다.
Amazon Lex는 의도가 이행될 준비가 되었음을 사용자가 인지하도록 하기 위해 이 메시지를 사용합니다. 예를 들어
OrderPizza
의도가 있는 경우 주문을 하기 전에 올바른지 확인해야 할 수 있습니다. 사용자 질문에 간단히 응답하는 의도와 같은 다른 의도의 경우 정보를 제공하기 전에 사용자에게 확인을 요청하지 않아도 될 수 있습니다.참고
rejectionStatement
와confirmationPrompt
를 모두 입력하거나 둘 다 입력하지 않아야 합니다.유형: Prompt객체
필수 항목 여부: 아니요
- createVersion
-
true
로 설정하면 번호가 매겨진 새 버전의 의도가 생성됩니다. 이는CreateIntentVersion
작업을 호출하는 것과 같습니다.createVersion
를 지정하지 않으면 기본값은false
입니다.타입: 부울
필수 항목 여부: 아니요
- description
-
의도에 대한 설명.
타입: 문자열
길이 제한: 최소 길이는 0. 최대 길이는 200.
필수 여부: 아니요
- dialogCodeHook
-
각 사용자 입력에 대해 간접 호출하도록 Lambda 함수를 지정합니다. 이 Lambda 함수를 간접 호출하여 사용자 상호 작용을 개인화할 수 있습니다.
예를 들어, 봇이 사용자를 John이라고 판단한다고 가정해 보겠습니다. Lambda 함수는 백엔드 데이터베이스에서 John의 정보를 검색하고 일부 값을 미리 채울 수 있습니다. 예를 들어, John이 글루텐 불내증이 있는 것으로 확인되면 해당하는
GlutenIntolerant
의도 슬롯을 참으로 설정할 수 있습니다. John의 전화번호를 찾아 해당 세션 속성을 설정할 수 있습니다.유형: CodeHook객체
필수 항목 여부: 아니요
- followUpPrompt
-
Amazon Lex는 이 프롬프트를 사용하여 의도를 이행한 후 추가 활동을 요청합니다. 예를 들어
OrderPizza
의도가 이행된 후 사용자에게 음료를 주문하라는 프롬프트를 표시할 수 있습니다.Amazon Lex가 취하는 조치는 다음과 같이 사용자의 응답에 따라 달라집니다.
-
사용자가 "예"라고 대답하면 봇에 대해 구성된 설명 프롬프트로 응답합니다.
-
사용자가 "예"라고 답하고 의도를 트리거하는 표현을 계속하면 해당 의도에 대한 대화가 시작됩니다.
-
사용자가 "아니요"라고 말하면 후속 조치 프롬프트에 대해 구성된 거부 문구로 응답합니다.
-
표현을 인식하지 못하면 후속 조치 프롬프트가 다시 반복됩니다.
followUpPrompt
필드와conclusionStatement
필드는 상호 배타적입니다. 하나만 지정할 수 있습니다.유형: FollowUpPrompt객체
필수 항목 여부: 아니요
-
- fulfillmentActivity
-
필수 사항입니다. 의도가 이행되는 방식을 설명합니다. 예를 들어, 사용자가 피자 주문에 필요한 모든 정보를 제공한 후
fulfillmentActivity
이 봇이 현지 피자 가게에 주문하는 방법을 정의합니다.모든 의도 정보를 클라이언트 애플리케이션에 반환하거나, 의도(예: 피자 가게에서 주문)를 처리할 수 있는 Lambda 함수를 간접 호출하도록 Amazon Lex를 구성할 수 있습니다 .
유형: FulfillmentActivity객체
필수 항목 여부: 아니요
- inputContexts
-
Amazon Lex가 사용자와의 대화에서 의도를 선택하기 위해 활성화되어야 하는 컨텍스트를 목록화하는
InputContext
객체 배열입니다.유형: InputContext객체 어레이
배열 멤버: 최소 항목 수 0개. 최대 항목 수 5개.
필수 여부: 아니요
- kendraConfiguration
-
AMAZON.KendraSearchIntent
의도를 사용하여 Amazon Kendra 인덱스에 연결하는 데 필요한 구성 정보입니다. 자세한 내용은 AMAZON을 참조하십시오. KendraSearchIntent.유형: KendraConfiguration객체
필수 항목 여부: 아니요
- outputContexts
-
의도가 이행될 때 의도가 활성화하는 컨텍스트를 목록화하는
OutputContext
객체의 배열입니다.유형: OutputContext객체 어레이
배열 멤버: 최소 항목 수는 0개. 최대 항목 수 10개.
필수 여부: 아니요
- parentIntentSignature
-
이 의도의 기반이 되는 기본 제공 의도의 고유 식별자입니다. 의도의 서명을 찾으려면 Alexa Skills Kit의 표준 기본 제공 의도
를 참조하십시오. 타입: 문자열
필수사항: 아니요
- rejectionStatement
-
사용자가
confirmationPrompt
에 정의된 질문에 "아니요"라고 답하면 Amazon Lex는 의도가 취소되었음을 확인하기 위해 이 문장으로 답합니다.참고
rejectionStatement
와confirmationPrompt
를 모두 입력하거나 둘 다 입력하지 않아야 합니다.유형: Statement객체
필수 항목 여부: 아니요
- sampleUtterances
-
사용자가 의도를 알리기 위해 말할 수 있는 표현(문자열)의 목록입니다. 예: “{PizzaSize} 피자를 원해요”, “주문 {수량} {PizzaSize} 피자”.
각 표현에서 슬롯 이름은 중괄호로 묶여 있습니다.
유형: 문자열 어레이
어레이 멤버: 최소 항목 수 0개. 최대 항목 수 1,500개.
길이 제약 조건: 최소 길이는 1입니다. 최대 길이는 200.
필수 여부: 아니요
- slots
-
의도 슬롯 배열. Amazon Lex는 런타임 시 슬롯에 정의된 프롬프트를 사용하여 사용자로부터 필요한 슬롯 값을 끌어냅니다. 자세한 정보는 Amazon Lex: 작동 방식을 참조하세요.
유형: Slot객체 어레이
어레이 멤버: 최소 항목 수 0개. 최대 항목 수 100개.
필수 여부: 아니요
응답 구문
HTTP/1.1 200
Content-type: application/json
{
"checksum": "string",
"conclusionStatement": {
"messages": [
{
"content": "string",
"contentType": "string",
"groupNumber": number
}
],
"responseCard": "string"
},
"confirmationPrompt": {
"maxAttempts": number,
"messages": [
{
"content": "string",
"contentType": "string",
"groupNumber": number
}
],
"responseCard": "string"
},
"createdDate": number,
"createVersion": boolean,
"description": "string",
"dialogCodeHook": {
"messageVersion": "string",
"uri": "string"
},
"followUpPrompt": {
"prompt": {
"maxAttempts": number,
"messages": [
{
"content": "string",
"contentType": "string",
"groupNumber": number
}
],
"responseCard": "string"
},
"rejectionStatement": {
"messages": [
{
"content": "string",
"contentType": "string",
"groupNumber": number
}
],
"responseCard": "string"
}
},
"fulfillmentActivity": {
"codeHook": {
"messageVersion": "string",
"uri": "string"
},
"type": "string"
},
"inputContexts": [
{
"name": "string"
}
],
"kendraConfiguration": {
"kendraIndex": "string",
"queryFilterString": "string",
"role": "string"
},
"lastUpdatedDate": number,
"name": "string",
"outputContexts": [
{
"name": "string",
"timeToLiveInSeconds": number,
"turnsToLive": number
}
],
"parentIntentSignature": "string",
"rejectionStatement": {
"messages": [
{
"content": "string",
"contentType": "string",
"groupNumber": number
}
],
"responseCard": "string"
},
"sampleUtterances": [ "string" ],
"slots": [
{
"defaultValueSpec": {
"defaultValueList": [
{
"defaultValue": "string"
}
]
},
"description": "string",
"name": "string",
"obfuscationSetting": "string",
"priority": number,
"responseCard": "string",
"sampleUtterances": [ "string" ],
"slotConstraint": "string",
"slotType": "string",
"slotTypeVersion": "string",
"valueElicitationPrompt": {
"maxAttempts": number,
"messages": [
{
"content": "string",
"contentType": "string",
"groupNumber": number
}
],
"responseCard": "string"
}
}
],
"version": "string"
}
응답 요소
작업이 성공하면 서비스가 HTTP 200 응답을 반송합니다.
다음 데이터는 서비스에 의해 JSON 형식으로 반환됩니다.
- checksum
-
생성 또는 업데이트된
$LATEST
버전의 의도 체크섬.타입: 문자열
- conclusionStatement
-
fulfillmentActivity
의도에 지정된 Lambda 함수가 의도를 이행하면 Amazon Lex는 이 설명을 사용자에게 전달합니다.유형: Statement객체
- confirmationPrompt
-
의도에 정의된 경우 Amazon Lex는 사용자에게 의도를 이행하기 전에 의도를 확인하라는 메시지를 표시합니다.
유형: Prompt객체
- createdDate
-
의도가 생성된 날짜입니다.
유형: 타임스탬프
- createVersion
-
의도의 새 버전이 생성된 경우
True
. 요청에서createVersion
필드를 지정하지 않은 경우 응답에서createVersion
필드는 거짓으로 설정됩니다.타입: 부울
- description
-
의도에 대한 설명.
타입: 문자열
길이 제한: 최소 길이는 0. 최대 길이는 200.
- dialogCodeHook
-
의도가 정의된 경우 Amazon Lex는 각 사용자 입력에 대해 이 Lambda 함수를 간접 호출합니다.
유형: CodeHook객체
- followUpPrompt
-
의도에 정의된 경우 Amazon Lex는 이 프롬프트를 사용하여 의도가 충족된 후 추가 사용자 활동을 요청합니다.
유형: FollowUpPrompt객체
- fulfillmentActivity
-
의도에 정의된 경우 Amazon Lex는 사용자가 의도에 필요한 모든 정보를 제공한 후 이 Lambda 함수를 간접 호출하여 의도를 수행합니다.
유형: FulfillmentActivity객체
- inputContexts
-
Amazon Lex가 사용자와의 대화에서 의도를 선택하기 위해 활성화되어야 하는 컨텍스트를 목록화하는
InputContext
객체 배열입니다.유형: InputContext객체 어레이
배열 멤버: 최소 항목 수 0개. 최대 항목 수 5개.
- kendraConfiguration
-
Amazon Kendra 인덱스에 연결하고
AMAZON.KendraSearchIntent
의도를 사용하는 데 필요한 구성 정보입니다.유형: KendraConfiguration객체
- lastUpdatedDate
-
의도가 업데이트된 날짜. 리소스를 생성할 때 생성 날짜 및 최종 업데이트 날짜가 동일합니다.
유형: 타임스탬프
- name
-
의도의 이름.
유형: 문자열
길이 제약: 최소 길이는 1. 최대 길이는 100.
패턴:
^([A-Za-z]_?)+$
- outputContexts
-
의도가 이행될 때 의도가 활성화하는 컨텍스트를 목록화하는
OutputContext
객체의 배열입니다.유형: OutputContext객체 어레이
배열 멤버: 최소 항목 수는 0개. 최대 항목 수는 10개.
- parentIntentSignature
-
이 의도의 기반이 되는 기본 제공 의도의 고유 식별자입니다.
타입: 문자열
- rejectionStatement
-
사용자가
confirmationPrompt
에 정의된 질문에 "아니요"라고 답하면 Amazon Lex는 의도가 취소되었음을 확인하기 위해 이 문장으로 답합니다.유형: Statement객체
- sampleUtterances
-
의도에 맞게 구성된 샘플 표현 배열.
유형: 문자열 어레이
어레이 멤버: 최소 항목 수 0개. 최대 항목 수 1,500개.
길이 제약 조건: 최소 길이는 1입니다. 최대 길이는 200입니다.
- slots
-
의도에 맞게 구성된 의도 슬롯 배열.
유형: Slot객체 어레이
어레이 멤버: 최소 항목 수 0개. 최대 항목 수 100개.
- version
-
의도의 버전. 새 의도의 경우 버전은 항상
$LATEST
입니다.유형: 문자열
길이 제한: 최소 길이는 1. 최대 길이는 64.
패턴:
\$LATEST|[0-9]+
Errors
- BadRequestException
-
요청이 제대로 구성되지 않았습니다. 예를 들어, 값이 유효하지 않거나 필수 필드가 누락된 경우입니다. 필드 값을 확인한 후 다시 시도하세요.
HTTP 상태 코드: 400
- ConflictException
-
요청을 처리하는 동안 충돌이 발생했습니다. 다시 요청해 보세요.
HTTP 상태 코드: 409
- InternalFailureException
-
내부 Amazon Lex 오류가 발생했습니다. 요청을 다시 시도하세요.
HTTP 상태 코드: 500
- LimitExceededException
-
요청이 한도를 초과했습니다. 다시 요청해 보세요.
HTTP 상태 코드: 429
- PreconditionFailedException
-
변경하려는 리소스의 체크섬이 요청의 체크섬과 일치하지 않습니다. 리소스의 체크섬을 확인한 후 다시 시도하세요.
HTTP 상태 코드: 412
참고
언어별 AWS SDK 중 하나에서 이 API를 사용하는 방법에 대한 자세한 내용은 다음을 참조하십시오.