Estructuras comunes en el evento y la respuesta de Lambda - Amazon Lex

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Estructuras comunes en el evento y la respuesta de Lambda

Dentro de la respuesta Lambda, hay una serie de estructuras que se repiten. En esta sección se proporcionan detalles sobre estas estructuras comunes.

Intención

"intent": { "confirmationState": "Confirmed | Denied | None", "name": string, "slots": { // see Slots 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 } }

El campo intent se asigna a un objeto con los siguientes campos:

Indica si el usuario ha confirmado los slots para la intención y si la intención está lista para su cumplimiento. Se admiten los siguientes valores:

Confirmed: el usuario confirma que los valores de los slots son correctos.

Denied: el usuario indica que los valores de los slots son incorrectos.

None: el usuario aún no ha llegado a la fase de confirmación.

El nombre de la intención.

Información sobre los slots necesarios para cumplir con la intención. Consulte Slots para obtener más información sobre la estructura.

Indica el estado de cumplimiento de la intención. Se admiten los siguientes valores:

Failed: el bot no cumplió con la intención.

Fulfilled: el bot ha completado el cumplimiento de la intención.

FulfillmentInProgress: el bot está a punto de cumplir su intención.

InProgress: el bot está a punto de obtener los valores de slot necesarios para cumplir su intención.

ReadyForFulfillment: el bot ha obtenido todos los valores de slot disponibles para esa intención y está preparado para cumplirla.

Waiting: el bot espera la respuesta del usuario (limitado a la transmisión de conversaciones).

Contiene información sobre los resultados de la consulta de búsqueda de Kendra. Este campo solo aparece si la intención es una KendraSearchIntent. Consulte la sintaxis de respuesta en la llamada a la API de consulta para Kendra para obtener más información.

Slots

El campo slots existe dentro de una intent estructura y está asignado a una estructura cuyas claves son los nombres de los slots correspondientes a esa intención. Si el slot no es un slot con varios valores (consulte Usar valores múltiples en un slot para obtener más información), se asigna a una estructura con el siguiente formato. Tenga en cuenta que shape es Scalar.

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

Si el slot es un slot con varios valores, el objeto al que se asigna contiene otro campo denominado values, que se asigna a una lista de estructuras, cada una de las cuales contiene información sobre el slot que forma el slot con varios valores. El formato de cada objeto de la lista coincide con el del objeto al que se asigna un slot normal. Tenga en cuenta que shape es List, pero la shape de los slots de los componentes que se encuentran por debajo de values es Scalar.

{ 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, ... ] } }, ... ] }

Los campos del objeto del slot se describen a continuación:

La forma del slot. Este valor es List si hay varios valores en el slot (consulte Usar valores múltiples en un slot para obtener más información) y es Scalar en caso contrario.

Un objeto que contiene información sobre el valor que el usuario proporcionó para un slot y la interpretación de Amazon Lex, en el siguiente formato:

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

Los siguientes campos se describen a continuación:

  • Valor original: la parte de la respuesta del usuario a la solicitud de slots que Amazon Lex determina que es relevante para el valor del slot.

  • Valor interpretado: el valor que Amazon Lex determina para el slot, según lo introducido por el usuario.

  • Valores resueltos: lista de valores que Amazon Lex determina que son posibles resoluciones para la entrada del usuario.

Una lista de objetos que contiene información sobre los slots que componen el slot con valores múltiples. El formato de cada objeto coincide con el de un slot normal, con los campos shape y value descritos anteriormente. values solo aparece si el slot consta de varios valores (consulte Usar valores múltiples en un slot para obtener más información). El siguiente objeto JSON muestra dos slots de componentes:

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

Estado de la sesión

El campo sessionState está asignado a un objeto que contiene información sobre el estado de la conversación con el usuario. Los campos reales que aparecen en el objeto dependen del tipo de acción de diálogo. Consulte Campos obligatorios en la respuesta los campos obligatorios en una respuesta de Lambda. El formato del objeto sessionState es el siguiente:

"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 Intención for details about the structure }, "originatingRequestId": string }

Los siguientes campos se describen a continuación:

Una lista de objetos que contiene información sobre un contexto que un usuario utiliza en una sesión. Utilice los contextos para facilitar y controlar el reconocimiento de intenciones. Para obtener más información sobre contextos, consulte Establecer el contexto de la intención. Cada objeto tiene el siguiente formato:

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

Los siguientes campos se describen a continuación:

  • Nombre: el nombre del contexto.

  • Atributos del contexto: objeto que contiene los nombres de los atributos del contexto y los valores a los que están asignados.

  • Tiempo activo: objeto que especifica cuánto tiempo permanece activo el contexto. Este objeto puede contener uno o los dos siguientes campos:

    • Tiempo activo en segundos: el número de segundos que el contexto permanece activo.

    • Turnos activo: el número de turnos durante los que el contexto permanece activo.

Mapa de pares clave/valor que representa la información de contexto específica de la sesión. Para obtener más información, consulte Establecer atributos de sesión. El objeto tiene el siguiente formato:

{ string: string, ... }

Proporciona sugerencias sobre las frases que es probable que un cliente utilice en un slot para mejorar el reconocimiento de audio. Los valores que proporcione en las sugerencias aumentan el reconocimiento de audio de esos valores en comparación con palabras que suenan similares. El formato del objeto runtimeHints es el siguiente:

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

El campo slotHints se asigna a un objeto cuyos campos son los nombres de las intenciones del bot. Cada nombre de intención se asigna a un objeto cuyos campos son los nombres de los slots correspondientes a esa intención. El nombre de cada slot se asigna a una estructura con un solo campo, runtimeHintValues, que es una lista de objetos. Cada objeto contiene un campo phrase que se asigna a una sugerencia.

Determina la siguiente acción que debe realizar Amazon Lex V2. El formato del objeto es el siguiente:

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

Los siguientes campos se describen a continuación:

  • Estilo de obtención de slot: determina cómo Amazon Lex V2 interpreta la entrada de audio del usuario si type de dialogAction es ElicitSlot. Para obtener más información, consulte Capturar valores de slot con deletreo. Se admiten los siguientes valores:

    Default: Amazon Lex V2 interpreta la entrada de audio de la manera predeterminada para ocupar un slot.

    SpellByLetter: Amazon Lex V2 escucha la ortografía del usuario sobre el valor del slot.

    SpellByWord: Amazon Lex V2 escucha la ortografía del valor del slot por parte del usuario mediante palabras asociadas a cada letra (por ejemplo, «m como en manzana»).

  • Slot a obtener: define el slot que se debe obtener del usuario si el type de dialogAction es ElicitSlot.

  • Tipo: define la acción que debe ejecutar el bot. Se admiten los siguientes valores:

    Delegate: permite a Amazon Lex V2 determinar el siguiente paso.

    ElicitIntent: pide al cliente que exprese una intención.

    ConfirmIntent: confirma los valores del slot del cliente y si la intención está lista para cumplirse.

    ElicitSlot: pide al cliente que indique un valor de slot para una intención.

    Close: finaliza el proceso de cumplimiento de la intención.

Para obtener información sobre la estructura del campo intent, consulte Intención.

Un identificador único para la solicitud. Este campo es opcional para la respuesta de Lambda.