PutIntent - Amazon Lex V1

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 함수를 제공하는 경우에만 관련이 있습니다. 의도를 클라이언트 애플리케이션에 반환하는 경우 이 요소를 지정할 수 없습니다.

참고

followUpPromptconclusionStatement는 함께 사용할 수 없습니다. 하나만 지정할 수 있습니다.

유형: Statement객체

필수 항목 여부: 아니요

confirmationPrompt

사용자에게 의도를 확인하라는 프롬프트를 표시합니다. 이 질문에 예 또는 아니요로 답해야 합니다.

Amazon Lex는 의도가 이행될 준비가 되었음을 사용자가 인지하도록 하기 위해 이 메시지를 사용합니다. 예를 들어 OrderPizza 의도가 있는 경우 주문을 하기 전에 올바른지 확인해야 할 수 있습니다. 사용자 질문에 간단히 응답하는 의도와 같은 다른 의도의 경우 정보를 제공하기 전에 사용자에게 확인을 요청하지 않아도 될 수 있습니다.

참고

rejectionStatementconfirmationPrompt를 모두 입력하거나 둘 다 입력하지 않아야 합니다.

유형: 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는 의도가 취소되었음을 확인하기 위해 이 문장으로 답합니다.

참고

rejectionStatementconfirmationPrompt를 모두 입력하거나 둘 다 입력하지 않아야 합니다.

유형: 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를 사용하는 방법에 대한 자세한 내용은 다음을 참조하십시오.