CreateIntent - Amazon Lex

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

CreateIntent

의도를 생성합니다.

사용자와 봇 간의 상호 작용을 정의하려면 하나 이상의 인텐트를 정의합니다. 예를 들어 피자 주문 봇의 경우OrderPizza의도.

의도를 생성할 때는 이름을 입력해야 합니다. 필요한 경우 다음을 제공할 수 있습니다.

  • 샘플 발언. 예: “Ca order a pizza pizza”, “I order a pizza”입니다. 내장 의도에 utterance를 제공할 수 없습니다.

  • 수집할 정보. 봇이 사용자에게 요청하는 정보에 대한 슬롯을 지정합니다. 표준 슬롯 유형 (예: 날짜 및 시간) 또는 응용 프로그램에 대한 사용자 정의 슬롯 유형을 지정할 수 있습니다.

  • 의도가 이행되는 방법. Lambda 함수를 제공하거나 인텐트 정보를 클라이언트 애플리케이션에 반환하도록 인텐트를 구성할 수 있습니다. Lambda 함수를 사용하는 경우 Amazon Lex는 모든 인텐트 정보를 사용할 수 있을 때 함수를 호출합니다.

  • 인텐트를 확인하기 위해 사용자에게 전송하라는 확인 프롬프트입니다. 예: “피자를 주문해야합니까?”

  • 인텐트가 충족된 후 사용자에게 보낼 결론 문입니다. 예: “피자를 주문했습니다.

  • 사용자에게 추가 활동을 요청하는 후속 프롬프트입니다. 예를 들어, “피자와 함께 음료를 드시겠습니까?”

요청 구문

PUT /bots/botId/botversions/botVersion/botlocales/localeId/intents/ HTTP/1.1 Content-type: application/json { "description": "string", "dialogCodeHook": { "enabled": boolean }, "fulfillmentCodeHook": { "enabled": boolean, "fulfillmentUpdatesSpecification": { "active": boolean, "startResponse": { "allowInterrupt": boolean, "delayInSeconds": number, "messageGroups": [ { "message": { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } }, "variations": [ { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } } ] } ] }, "timeoutInSeconds": number, "updateResponse": { "allowInterrupt": boolean, "frequencyInSeconds": number, "messageGroups": [ { "message": { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } }, "variations": [ { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } } ] } ] } }, "postFulfillmentStatusSpecification": { "failureResponse": { "allowInterrupt": boolean, "messageGroups": [ { "message": { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } }, "variations": [ { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } } ] } ] }, "successResponse": { "allowInterrupt": boolean, "messageGroups": [ { "message": { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } }, "variations": [ { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } } ] } ] }, "timeoutResponse": { "allowInterrupt": boolean, "messageGroups": [ { "message": { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } }, "variations": [ { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } } ] } ] } } }, "inputContexts": [ { "name": "string" } ], "intentClosingSetting": { "active": boolean, "closingResponse": { "allowInterrupt": boolean, "messageGroups": [ { "message": { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } }, "variations": [ { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } } ] } ] } }, "intentConfirmationSetting": { "active": boolean, "declinationResponse": { "allowInterrupt": boolean, "messageGroups": [ { "message": { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } }, "variations": [ { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } } ] } ] }, "promptSpecification": { "allowInterrupt": boolean, "maxRetries": number, "messageGroups": [ { "message": { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } }, "variations": [ { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } } ] } ] } }, "intentName": "string", "kendraConfiguration": { "kendraIndex": "string", "queryFilterString": "string", "queryFilterStringEnabled": boolean }, "outputContexts": [ { "name": "string", "timeToLiveInSeconds": number, "turnsToLive": number } ], "parentIntentSignature": "string", "sampleUtterances": [ { "utterance": "string" } ] }

URI 요청 파라미터

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

botId

이 인텐트와 연결된 봇의 식별자입니다.

길이 제약 조건: 고정 길이 10입니다.

Pattern: ^[0-9a-zA-Z]+$

: 필수 예

botVersion

이 인텐트와 연결된 봇 버전의 식별자입니다.

길이 제약 조건: 고정 길이 5입니다.

Pattern: ^DRAFT$

: 필수 예

localeId

이 인텐트가 사용되는 언어 및 로케일의 식별자입니다. 인텐트에서 사용하는 모든 봇, 슬롯 유형 및 슬롯은 동일한 로캘을 가져야 합니다. 자세한 내용은 단원을 참조하십시오.지원되는 언어.

: 필수 예

요청 본문

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

description

의도에 대한 설명입니다. 목록에서 의도를 식별하려면 설명을 사용합니다.

Type: 문자열

길이 제약 조건: 최소 길이는 0이고, 최대 길이는 200입니다.

: 필수 아니요

dialogCodeHook

Amazon Lex가 각 사용자 입력에 대해 별칭 Lambda 함수를 호출하도록 지정합니다. 이 Lambda 함수를 호출하여 사용자 상호 작용을 개인화할 수 있습니다.

예를 들어 봇이 사용자 이름이 John이라고 판단한다고 가정합니다. Lambda 함수는 백엔드 데이터베이스에서 John의 정보를 검색하고 일부 값을 미리 채울 수 있습니다. 예를 들어 John이 글루텐 불내성이라는 것을 발견하면 해당 의도 슬롯을 설정할 수 있습니다.glutenIntoleranttrue. John의 전화 번호를 찾아 해당 세션 속성을 설정할 수 있습니다.

유형: DialogCodeHookSettings 객체

: 필수 아니요

fulfillmentCodeHook

인텐트가 이행될 준비가 되면 Amazon Lex에서 별칭 Lambda 함수를 호출하도록 지정합니다. 이 함수를 호출하여 사용자와 봇의 트랜잭션을 완료할 수 있습니다.

예를 들어 피자 주문 봇에서 Lambda 함수는 고객의 위치와 가장 가까운 피자 레스토랑을 조회한 다음 고객을 대신하여 주문할 수 있습니다.

유형: FulfillmentCodeHookSettings 객체

: 필수 아니요

inputContexts

Amazon Lex에서 이 인텐트를 고려하기 위해 활성화되어야 하는 컨텍스트 목록입니다.

인텐트에 입력 컨텍스트 목록이 있는 경우 Amazon Lex는 지정된 컨텍스트가 세션의 활성 컨텍스트 목록에 포함된 경우에만 사용자와의 상호 작용에서 인텐트를 사용하는 것을 고려합니다. 컨텍스트가 활성 상태가 아닌 경우 Amazon Lex는 인텐트를 사용하지 않습니다.

컨텍스트를 사용하여 자동으로 활성화할 수 있습니다.outputContexts속성 또는 런타임에 설정할 수 있습니다.

예를 들어, 동일한 발언에 응답하는 입력 컨텍스트가 다른 두 개의 인텐트가 있는 경우 활성 컨텍스트가 있는 인텐트만 응답합니다.

인텐트는 최대 5개의 입력 컨텍스트를 가질 수 있습니다. 인텐트에 여러 입력 컨텍스트가 있는 경우 인텐트를 고려하기 위해 모든 컨텍스트가 활성 상태여야 합니다.

Type: 배열InputContext사물

배열 멤버: 최소 항목 수 0개. 최대 항목 수는 5개입니다.

: 필수 아니요

intentClosingSetting

인텐트가 닫힐 때 Amazon Lex가 사용자에게 보내는 응답을 설정합니다.

유형: IntentClosingSetting 객체

: 필수 아니요

intentConfirmationSetting

인텐트 완료를 확인하기 위해 Amazon Lex가 사용자에게 보내는 프롬프트를 제공합니다. 사용자가 “아니오”라고 응답하면 설정에 인텐트를 종료하기 위해 사용자에게 전송되는 문이 포함됩니다.

유형: IntentConfirmationSetting 객체

: 필수 아니요

intentName

의도의 이름 인텐트 이름은 인텐트가 포함된 로캘에서 고유해야 하며 빌트인 인텐트의 이름과 일치할 수 없습니다.

Type: 문자열

길이 제약 조건: 최소 길이는 1이고, 최대 길이는 100입니다.

Pattern: ^([0-9a-zA-Z][_-]?)+$

: 필수 예

kendraConfiguration

를 사용하는 데 필요한 구성 정보AMAZON.KendraSearchIntent의도 Amazon Kendra 인덱스에 연결합니다. 이AMAZON.KendraSearchIntentintent는 Amazon Lex가 호출할 다른 인텐트를 결정할 수 없을 때 호출됩니다.

유형: KendraConfiguration 객체

: 필수 아니요

outputContexts

인텐트가 이행될 때 활성화하는 컨텍스트 목록입니다.

출력 컨텍스트를 사용하여 Amazon Lex가 고객과의 다음 대화에서 고려해야 할 인텐트를 나타낼 수 있습니다.

를 사용하는 경우outputContextsList속성을 선택하면 의도가 충족될 때 목록에 지정된 모든 컨텍스트가 활성화됩니다. 최대 10개의 출력 컨텍스트를 설정할 수 있습니다. 컨텍스트가 활성화되어야 하는 대화 회전 수 또는 컨텍스트가 활성화되어야 하는 시간을 설정할 수도 있습니다.

Type: 배열OutputContext사물

배열 멤버: 최소 항목 수 0개. 최대 항목 수는 10개입니다.

: 필수 아니요

parentIntentSignature

이 의도의 기반이 되는 기본 제공 의도의 고유 식별자입니다.

Type: 문자열

: 필수 아니요

sampleUtterances

사용자가 인텐트를 알리기 위해 말할 수 있는 문자열 배열입니다. 예: “I order a pizza” 또는 “I to pizza zaSize} pizza”입니다.

말에서 슬롯 이름은 중괄호 (“{”, “}”) 로 묶여 사용자에게 표시된 발언으로 표시되어야 하는 위치를 나타냅니다.

Type: 배열SampleUtterance사물

: 필수 아니요

응답 구문

HTTP/1.1 200 Content-type: application/json { "botId": "string", "botVersion": "string", "creationDateTime": number, "description": "string", "dialogCodeHook": { "enabled": boolean }, "fulfillmentCodeHook": { "enabled": boolean, "fulfillmentUpdatesSpecification": { "active": boolean, "startResponse": { "allowInterrupt": boolean, "delayInSeconds": number, "messageGroups": [ { "message": { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } }, "variations": [ { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } } ] } ] }, "timeoutInSeconds": number, "updateResponse": { "allowInterrupt": boolean, "frequencyInSeconds": number, "messageGroups": [ { "message": { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } }, "variations": [ { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } } ] } ] } }, "postFulfillmentStatusSpecification": { "failureResponse": { "allowInterrupt": boolean, "messageGroups": [ { "message": { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } }, "variations": [ { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } } ] } ] }, "successResponse": { "allowInterrupt": boolean, "messageGroups": [ { "message": { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } }, "variations": [ { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } } ] } ] }, "timeoutResponse": { "allowInterrupt": boolean, "messageGroups": [ { "message": { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } }, "variations": [ { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } } ] } ] } } }, "inputContexts": [ { "name": "string" } ], "intentClosingSetting": { "active": boolean, "closingResponse": { "allowInterrupt": boolean, "messageGroups": [ { "message": { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } }, "variations": [ { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } } ] } ] } }, "intentConfirmationSetting": { "active": boolean, "declinationResponse": { "allowInterrupt": boolean, "messageGroups": [ { "message": { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } }, "variations": [ { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } } ] } ] }, "promptSpecification": { "allowInterrupt": boolean, "maxRetries": number, "messageGroups": [ { "message": { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } }, "variations": [ { "customPayload": { "value": "string" }, "imageResponseCard": { "buttons": [ { "text": "string", "value": "string" } ], "imageUrl": "string", "subtitle": "string", "title": "string" }, "plainTextMessage": { "value": "string" }, "ssmlMessage": { "value": "string" } } ] } ] } }, "intentId": "string", "intentName": "string", "kendraConfiguration": { "kendraIndex": "string", "queryFilterString": "string", "queryFilterStringEnabled": boolean }, "localeId": "string", "outputContexts": [ { "name": "string", "timeToLiveInSeconds": number, "turnsToLive": number } ], "parentIntentSignature": "string", "sampleUtterances": [ { "utterance": "string" } ] }

응답 요소

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

다음 데이터는 서비스에 의해 JSON 형식으로 반환됩니다.

botId

인텐트와 연결된 봇의 식별자입니다.

Type: 문자열

길이 제약 조건: 고정 길이 10입니다.

Pattern: ^[0-9a-zA-Z]+$

botVersion

인텐트와 연결된 봇 버전의 식별자입니다.

Type: 문자열

길이 제약 조건: 고정 길이 5입니다.

Pattern: ^DRAFT$

creationDateTime

의도가 생성된 날짜와 시간의 타임스탬프입니다.

Type: 타임스탬프

description

의도에 지정된 설명입니다.

Type: 문자열

길이 제약 조건: 최소 길이는 0이고, 최대 길이는 200입니다.

dialogCodeHook

인텐트에 지정된 대화상자 Lambda 함수입니다.

유형: DialogCodeHookSettings 객체

fulfillmentCodeHook

인텐트에 대해 지정된 이행 Lambda 함수입니다.

유형: FulfillmentCodeHookSettings 객체

inputContexts

인텐트에 대해 지정된 입력 컨텍스트 목록입니다.

Type: 배열InputContext사물

배열 멤버: 최소 항목 수 0개. 최대 항목 수는 5개입니다.

intentClosingSetting

의도에 지정된 닫기 설정입니다.

유형: IntentClosingSetting 객체

intentConfirmationSetting

의도에 지정된 확인 설정입니다.

유형: IntentConfirmationSetting 객체

intentId

의도의 고유 식별자입니다.

Type: 문자열

길이 제약 조건: 고정 길이 10입니다.

Pattern: ^[0-9a-zA-Z]+$

intentName

의도에 지정된 이름입니다.

Type: 문자열

길이 제약 조건: 최소 길이는 1이고, 최대 길이는 100입니다.

Pattern: ^([0-9a-zA-Z][_-]?)+$

kendraConfiguration

인텐트에 지정된 Amazon Kendra 인덱스를 검색하기 위한 구성입니다.

유형: KendraConfiguration 객체

localeId

인텐트가 사용하도록 지정된 로캘입니다.

Type: 문자열

outputContexts

인텐트에 대해 지정된 출력 컨텍스트 목록입니다.

Type: 배열OutputContext사물

배열 멤버: 최소 항목 수 0개. 최대 항목 수는 10개입니다.

parentIntentSignature

인텐트에 지정된 상위 인텐트의 서명입니다.

Type: 문자열

sampleUtterances

인텐트에 대해 지정된 샘플 발언입니다.

Type: 배열SampleUtterance사물

오류

모든 작업에 공통적인 오류에 대한 자세한 내용은 단원을 참조하십시오.일반적인 오류.

ConflictException

리소스가 충돌하는 상태이므로 수행하려고 시도한 작업을 완료할 수 없습니다. 예를 들어 CREATING 상태에 있는 봇을 삭제할 수 있습니다. 요청을 다시 시도하십시오.

HTTP 상태 코드: 409

InternalServerException

서비스에 예상치 못한 조건이 발생했습니다. 요청을 다시 시도하십시오.

HTTP 상태 코드: 500

PreconditionFailedException

하나 이상의 요청 필드가 유효하지 않기 때문에 요청을 완료할 수 없습니다. 요청의 필드를 확인하고 다시 시도하십시오.

HTTP 상태 코드: 412

ServiceQuotaExceededException

봇에 대한 할당량에 도달했습니다.

HTTP 상태 코드: 402

ThrottlingException

요청량이 너무 높습니다. 요청 횟수를 줄입니다.

HTTP 상태 코드: 429

ValidationException

요청의 입력 매개 변수 중 하나가 잘못되었습니다. 파라미터를 확인하고 요청을 다시 시도하십시오.

HTTP 상태 코드: 400

참고 항목

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