기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS Lambda Lex V2의 응답 형식
Lambda 함수를 Amazon Lex V2 봇에 통합하는 두 번째 단계는 Lambda 함수 응답의 필드를 이해하고 조작하려는 파라미터를 결정하는 것입니다. 다음 JSON 객체는 Amazon Lex V2로 반환되는 Lambda 응답의 일반적인 형식을 보여줍니다.
{ "sessionState": { // see 세션 상태 for details about the structure }, "messages": [ { "contentType": "CustomPayload | ImageResponseCard | PlainText | SSML", "content":
string
, "imageResponseCard": { "title":string
, "subtitle":string
, "imageUrl":string
, "buttons": [ { "text":string
, "value":string
}, ... ] } }, ... ], "requestAttributes": {string
:string
, ... } }
응답의 각 필드는 아래에 설명되어 있습니다.
사용자와 반환하려는 Amazon Lex V2 봇 간의 대화 상태입니다. 구조에 대한 자세한 내용은 세션 상태를 참조하세요. 이 필드는 항상 필수 항목입니다.
Amazon Lex V2가 다음 대화를 위해 고객에게 반환하는 메시지 목록입니다. 제공하는 contentType
이 PlainText
, CustomPayload
또는 SSML
인 경우 content
필드에 고객에게 반환할 메시지를 작성합니다. 제공하는 contentType
이 ImageResponseCard
인 경우 imageResponseCard
필드에 카드의 세부 정보를 입력합니다. 메시지를 제공하지 않는 경우 Amazon Lex V2는 봇이 생성될 때 정의된 적절한 메시지를 사용합니다.
dialogAction.type
이 ElicitIntent
또는 ConfirmIntent
인 경우 messages
필드는 필수입니다.
목록의 각 항목은 사용자에게 반환할 메시지에 대한 정보를 포함하는 다음 형식의 구조입니다. 예:
{ "contentType": "CustomPayload | ImageResponseCard | PlainText | SSML", "content":
string
, "imageResponseCard": { "title":string
, "subtitle":string
, "imageUrl":string
, "buttons": [ { "text":string
, "value":string
}, ... ] } }
각 필드에 대한 설명은 다음과 같습니다.
-
contentType— 사용할 메시지 유형.
CustomPayload
– 애플리케이션에 대한 데이터 또는 메타데이터를 포함하도록 사용자 지정할 수 있는 응답 문자열입니다.ImageResponseCard
– 고객이 선택할 수 있는 버튼이 있는 이미지입니다. 자세한 내용은 ImageResponseCard을 참조하십시오.PlainText
– 일반 텍스트 문자열입니다.SSML
– 오디오 응답을 사용자 지정하기 위한 Speech Synthesis Markup Language가 포함된 문자열입니다. -
content – 사용자에게 전송할 메시지입니다. 메시지 유형이
PlainText
,CustomPayload
또는SSML
인 경우 이 필드를 사용하세요. -
imageResponseCard— 사용자에게 표시할 응답 카드의 정의를 포함합니다. 메시지 유형이
ImageResponseCard
인 경우 이 필드를 사용하세요. 다음 필드가 포함된 구조에 매핑합니다-
제목 – 응답 카드의 제목입니다.
-
자막 – 사용자가 버튼을 선택하라는 메시지입니다.
-
imageUrl— 카드 이미지 링크.
-
버튼 – 버튼에 대한 정보가 포함되어 있는 구조 목록입니다. 각 구조에는 표시할 텍스트가 있는
text
필드와 Amazon Lex V2에 고객이 해당 버튼을 선택할 경우 Amazon Lex V2로 전송할 값이 포함된value
필드가 포함되어 있습니다. 최대 세 개의 버튼을 포함할 수 있습니다.
-
고객에 대한 응답에 대한 요청별 속성을 포함하는 구조입니다. 자세한 내용은 Lex V2 봇의 요청 속성 설정 섹션을 참조하세요. 이 필드는 선택 사항입니다.
응답의 필수 필드
최소한 Lambda 응답에는 sessionState
객체가 포함되어야 합니다. 그 안에 dialogAction
객체를 제공하고 type
필드를 지정하세요. 제공하는 dialogAction
의 type
에 따라 Lambda 응답에 다른 필수 필드가 있을 수 있습니다. 이러한 요구 사항은 최소한의 작업 예시와 함께 다음과 같이 설명됩니다.
Delegate를 통해 Amazon Lex V2에서 다음 단계를 결정할 수 있습니다. 다른 필드는 필요하지 않습니다.
{ "sessionState": { "dialogAction": { "type": "Delegate" } }
ElicitIntent고객에게 의도를 표현하라는 메시지를 표시합니다. 의도를 유도하려면 messages
필드에 메시지를 하나 이상 포함해야 합니다.
{ "sessionState": { "dialogAction": { "type": "ElicitIntent" }, "messages": [ { "contentType": PlainText, "content": "How can I help you?" } ] }
ElicitSlot고객에게 슬롯 값을 제공하라는 메시지를 표시합니다. dialogAction
객체의 slotToElicit
필드에 슬롯 이름을 포함해야 합니다. 또한 sessionState
객체에 intent
의 name
을 포함해야 합니다.
{` "sessionState": { "dialogAction": { "slotToElicit":
"OriginCity"
, "type": "ElicitSlot" }, "intent": { "name":"BookFlight"
} } }
ConfirmIntent고객의 슬롯 값과 인텐트를 충족할 준비가 되었는지 확인합니다. sessionState
객체에 intent
의 name
과 확인할 slots
을 포함해야 합니다. 또한 사용자에게 슬롯 값 확인을 요청하는 메시지를 하나 이상 messages
필드에 포함해야 합니다. 메시지에 “예” 또는 “아니요” 응답이 표시되어야 합니다. 사용자가 "예"라고 응답하면 Amazon Lex V2는 의도의 confirmationState
를 Confirmed
로 설정합니다. 사용자가 “아니요”라고 응답하면 Amazon Lex V2는 의도의 confirmationState
를 Denied
로 설정합니다.
{ "sessionState": { "dialogAction": { "type": "ConfirmIntent" }, "intent": { "name":
"BookFlight"
, "slots": {"DepartureDate"
: { "value": { "originalValue": "tomorrow", "interpretedValue": "2023-05-09", "resolvedValues": [ "2023-05-09" ] } },"DestinationCity"
: { "value": { "originalValue": "sf", "interpretedValue": "sf", "resolvedValues": [ "sf" ] } },"OriginCity"
: { "value": { "originalValue": "nyc", "interpretedValue": "nyc", "resolvedValues": [ "nyc" ] } } } } }, "messages": [ { "contentType": PlainText, "content": "Okay, you want to fly from {OriginCity} to \ {DestinationCity} on {DepartureDate}. Is that correct?" } ] }
Close는 의도의 이행 프로세스를 종료하고 사용자로부터 추가 응답이 예상되지 않음을 나타냅니다. sessionState
객체에 intent
의 name
과 state
를 포함해야 합니다. 호환되는 의도 상태는Failed
, Fulfilled
, InProgress
입니다.
"sessionState": { "dialogAction": { "type": "Close" }, "intent": { "name":
"BookFlight"
, "state": "Failed | Fulfilled | InProgress" } }