Lambda 이벤트 및 응답의 공통 구조 - Amazon Lex

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

Lambda 이벤트 및 응답의 공통 구조

Lambda 응답 내에는 여러 구조가 반복됩니다. 이러한 공통 구조에 대한 세부 정보는 이 섹션에 나와 있습니다.

의도

"intent": { "confirmationState": "Confirmed | Denied | None", "name": string, "slots": { // see 슬롯 for details about the structure }, "state": "Failed | Fulfilled | FulfillmentInProgress | InProgress | ReadyForFulfillment | Waiting", "kendraResponse": { // Only present when intent is KendraSearchIntent. For details, see // https://docs.aws.amazon.com/kendra/latest/dg/API_Query.html#API_Query_ResponseSyntax } }

intent 필드는 다음 필드가 있는 객체에 매핑됩니다.

사용자가 의도에 사용할 슬롯을 확인했고 의도가 이행될 준비가 되었는지 나타냅니다. 다음과 같은 값이 가능합니다.

Confirmed– 사용자가 슬롯 값이 정확한지 확인합니다.

Denied– 사용자가 슬롯 값이 잘못되었다고 표시합니다.

None– 사용자가 아직 확인 단계에 도달하지 않았습니다.

의도의 이름입니다.

의도를 이행하는 데 필요한 슬롯에 대한 정보입니다. 구조에 대한 자세한 내용은 슬롯를 참조하십시오.

의도의 이행 상태를 나타냅니다. 다음과 같은 값이 가능합니다.

Failed– 봇이 의도를 이행하지 못했습니다.

Fulfilled– 봇이 의도 이행을 완료했습니다.

FulfillmentInProgress– 봇이 의도를 이행하는 중입니다.

InProgress– 봇이 의도를 충족하는 데 필요한 슬롯 값을 도출하는 중입니다.

ReadyForFulfillment– 봇이 의도에 대한 모든 슬롯 값을 가져왔고 의도를 이행할 준비가 되었습니다.

Waiting– 봇이 사용자의 응답을 기다리고 있습니다(스트리밍 대화로 제한됨).

Kendra 검색 쿼리 결과에 대한 정보가 들어 있습니다. 이 필드는 의도가 KendraSearchIntent인 경우에만 표시됩니다. 자세한 내용은 Kendra용 쿼리 API 호출의 응답 구문을 참조하십시오.

슬롯

slots 필드는 intent 구조 내에 존재하며 해당 의도의 슬롯 이름을 키로 하는 구조에 매핑됩니다. 슬롯이 다중 값 슬롯이 아닌 경우(자세한 내용은 슬롯에서 여러 값 사용 참조) 다음 형식의 구조에 매핑됩니다. 참고로, shapeScalar입니다.

{ slot name: { "shape": "Scalar", "value": { "originalValue": string, "interpretedValue": string, "resolvedValues": [ string, ... ] } } }

슬롯이 다중 값 슬롯인 경우, 슬롯이 매핑되는 객체에는 values라는 또 다른 필드가 포함되며, 이 필드는 다중 값 슬롯을 구성하는 슬롯에 대한 정보를 각각 포함하는 구조 목록에 매핑됩니다. 목록에 있는 각 객체의 형식은 일반 슬롯이 매핑되는 객체의 형식과 일치합니다. 참고로 shapeList지만 values 아래 컴포넌트 슬롯의 shapeScalar입니다.

{ slot name: { "shape": "List", "value": { "originalValue": string, "interpretedValue": string, "resolvedValues": [ string, ... ] }, "values": [ { "shape": "Scalar", "value": { "originalValue": string, "interpretedValue": string, "resolvedValues": [ string, ... ] } }, { "shape": "Scalar", "value": { "originalValue": string, "interpretedValue": string, "resolvedValues": [ string, ... ] } }, ... ] }

슬롯 객체의 필드는 다음과 같습니다.

슬롯의 모양입니다. 이 값은 슬롯에 여러 값이 있는 경우 List이고(자세한 내용은 슬롯에서 여러 값 사용 참조), 그렇지 않은 경우 Scalar입니다.

사용자가 슬롯에 제공한 값과 Amazon Lex의 해석에 대한 정보가 다음 형식으로 들어 있는 객체입니다.

{ "originalValue": string, "interpretedValue": string, "resolvedValues": [ string, ... ] }

필드는 아래에 설명되어 있습니다.

  • originalValue – Amazon Lex가 슬롯 값과 관련이 있다고 판단한 슬롯 요청에 대한 사용자 응답 부분입니다.

  • interpretedValue – Amazon Lex가 사용자 입력을 바탕으로 슬롯에 대해 결정하는 값입니다.

  • resolvedValues – Amazon Lex에서 사용자 입력에 대해 가능한 해결 방법이라고 판단한 값 목록입니다.

다중 값 슬롯을 구성하는 슬롯에 대한 정보가 들어 있는 객체 목록입니다. 각 개체의 형식은 위에서 설명한 shapevalue 필드가 있는 일반 슬롯의 형식과 일치합니다. values는 슬롯이 여러 값으로 구성된 경우에만 표시됩니다(자세한 내용은 슬롯에서 여러 값 사용 참조). 다음 JSON 객체는 두 개의 구성 요소 슬롯을 보여줍니다.

"values": [ { "shape": "Scalar", "value": { "originalValue": string, "interpretedValue": string, "resolvedValues": [ string, ... ] } }, { "shape": "Scalar", "value": { "originalValue": string, "interpretedValue": string, "resolvedValues": [ string, ... ] } }, ... ]

세션 상태

sessionState 필드는 사용자와의 대화 상태에 대한 정보가 포함된 객체에 매핑됩니다. 객체에 나타나는 실제 필드는 대화 작업 유형에 따라 달라집니다. Lambda 응답의 필수 필드는 응답의 필수 필드를 참조하십시오. sessionState 객체의 형식은 다음과 같습니다.

"sessionState": { "activeContexts": [ { "name": string, "contextAttributes": { string: string }, "timeToLive": { "timeToLiveInSeconds": number, "turnsToLive": number } }, ... ], "sessionAttributes": { string: string, ... }, "runtimeHints": { "slotHints": { intent name: { slot name: { "runtimeHintValues": [ { "phrase": string }, ... ] }, ... }, ... } }, "dialogAction": { "slotElicitationStyle": "Default | SpellByLetter | SpellByWord", "slotToElicit": string, "type": "Close | ConfirmIntent | Delegate | ElicitIntent | ElicitSlot" }, "intent": { // see 의도 for details about the structure }, "originatingRequestId": string }

필드는 아래에 설명되어 있습니다.

사용자가 세션에서 사용 중인 컨텍스트에 대한 정보가 들어 있는 개체 목록입니다. 컨텍스트를 사용하여 의도 인식을 용이하게 하고 제어할 수 있습니다. 컨텍스트에 대한 자세한 내용은 Intent 컨텍스트 설정 섹션을 참조하세요. 각 객체의 형식은 다음과 같습니다.

{ "name": string, "contextAttributes": { string: string }, "timeToLive": { "timeToLiveInSeconds": number, "turnsToLive": number } }

필드는 아래에 설명되어 있습니다.

  • name – 컨텍스트의 이름입니다.

  • contextAttributes – 컨텍스트의 속성 이름과 해당 속성이 매핑되는 값이 들어 있는 객체입니다.

  • timeToLive – 컨텍스트가 활성 상태로 유지되는 기간을 지정하는 객체입니다. 이 객체에는 다음 필드 중 하나 또는 둘 다를 포함할 수 있습니다.

    • timeToLiveInSeconds – 컨텍스트가 활성 상태로 유지되는 시간 (초) 입니다.

    • turnsToLive – 컨텍스트가 활성 상태로 유지되는 턴 수입니다.

세션별 컨텍스트 정보를 나타내는 키/값 페어의 맵입니다. 자세한 내용은 세션 속성 설정 섹션을 참조하세요. 객체의 형식은 다음과 같습니다

{ string: string, ... }

오디오 인식을 개선하기 위해 고객이 슬롯에 사용할 가능성이 높은 문구에 대한 힌트를 제공합니다. 힌트에 입력한 값을 사용하면 비슷한 소리가 나는 단어보다 해당 값을 오디오로 더 잘 인식할 수 있습니다. runtimeHints 객체의 형식은 다음과 같습니다.

{ "slotHints": { intent name: { slot name: { "runtimeHintValues": [ { "phrase": string }, ... ] }, ... }, ... } }

slotHints 필드는 봇에 있는 의도의 이름을 필드로 하는 객체에 매핑됩니다. 각 의도 이름은 필드가 해당 의도의 슬롯 이름인 객체에 매핑됩니다. 각 슬롯 이름은 객체 목록인 runtimeHintValues라는 단일 필드가 있는 구조에 매핑됩니다. 각 객체에는 힌트에 매핑되는 phrase 필드가 있습니다.

Amazon Lex V2가 수행할 다음 작업을 결정합니다. 객체의 형식은 다음과 같습니다.

{ "slotElicitationStyle": "Default | SpellByLetter | SpellByWord", "slotToElicit": string, "type": "Close | ConfirmIntent | Delegate | ElicitIntent | ElicitSlot" }

필드는 아래에 설명되어 있습니다.

  • slotElicitationStyledialogActiontypeElicitSlot인 경우 Amazon Lex V2가 사용자의 오디오 입력을 해석하는 방법을 결정합니다. 자세한 내용은 맞춤법 스타일을 사용하여 슬롯 값 캡처 섹션을 참조하세요. 다음과 같은 값이 가능합니다.

    Default– Amazon Lex V2는 오디오 입력을 기본 방식으로 해석하여 슬롯을 채웁니다.

    SpellByLetter– Amazon Lex V2는 슬롯 값에 대한 사용자의 맞춤법을 수신합니다.

    SpellByWord– Amazon Lex V2는 각 문자와 관련된 단어(예: "a as in apple")를 사용하여 슬롯 값에 대한 사용자의 철자를 수신합니다.

  • slotToElicitdialogActiontypeElicitSlot인 경우 사용자로부터 유도할 슬롯을 정의합니다.

  • type – 봇이 실행해야 하는 작업을 정의합니다. 다음과 같은 값이 가능합니다.

    Delegate– Amazon Lex V2에서 다음 단계를 결정하도록 합니다.

    ElicitIntent– 고객에게 의도를 표현하라는 메시지를 표시합니다.

    ConfirmIntent– 고객의 슬롯 값과 의도가 이행될 준비가 되었는지 확인합니다.

    ElicitSlot– 고객에게 의도의 슬롯 값을 제공하라는 메시지를 표시합니다.

    Close– 의도 이행 프로세스를 종료합니다.

intent 필드의 구조는 의도를 참조하세요.

요청에 대한 고유 식별자입니다. Lambda 응답의 경우 이 필드가 선택 사항입니다.