

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 de una AWS Lambda función para Amazon Lex V2
<a name="lambda-common-structures"></a>

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
<a name="lambda-intent"></a>

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

### Estado de confirmación
<a name="lambda-intent-confirmationstate"></a>

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.

### name
<a name="lambda-intent-name"></a>

El nombre de la intención.

### slots
<a name="lambda-intent-slots"></a>

Información sobre los slots necesarios para cumplir con la intención. Consulte [Ranuras](#lambda-slot) para obtener más información sobre la estructura.

### estado
<a name="lambda-intent-state"></a>

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).

### Respuesta de Kendra
<a name="lambda-intent-kendraresponse"></a>

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](https://docs.aws.amazon.com/kendra/latest/dg/API_Query.html#API_Query_ResponseSyntax) para obtener más información.

## Ranuras
<a name="lambda-slot"></a>

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 [Uso de valores múltiples en un slot](multi-valued-slots.md) 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:

### Forma
<a name="lambda-slots-shape"></a>

La forma del slot. Este valor es `List` si hay varios valores en el slot (consulte [Uso de valores múltiples en un slot](multi-valued-slots.md) para obtener más información) y es `Scalar` en caso contrario.

### valor
<a name="lambda-slots-value"></a>

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

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

Los campos se describen a continuación:
+ **OriginalValue**: la parte de la respuesta del usuario a la selección de franjas horarias que Amazon Lex V2 determina que es relevante para el valor de la ranura.
+ **InterpretedValue**: el valor que Amazon Lex V2 determina para la ranura, según lo introducido por el usuario.
+ **ResolvedValues**: lista de valores que Amazon Lex V2 determina que son posibles resoluciones para la entrada del usuario.

### valores
<a name="lambda-slots-values"></a>

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 [Uso de valores múltiples en un slot](multi-valued-slots.md) 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
<a name="lambda-session-state"></a>

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](lambda-response-format.md#lambda-response-required) 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:

### Contextos activos
<a name="lambda-active-contexts"></a>

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 [Cómo establecer un contexto de intención para su bot Lex V2](context-mgmt-active-context.md). 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.
+ **timeToLive**— Un objeto que especifica cuánto tiempo permanece activo el contexto. Este objeto puede contener uno o los dos siguientes campos:
  + **timeToLiveInSeconds**— El número de segundos que el contexto permanece activo.
  + **turnsToLive**— El número de turnos durante los que el contexto permanece activo.

### sessionAttributes
<a name="lambda-session-attributes"></a>

Un mapa de key/value pares que representa información contextual específica de la sesión. Para obtener más información, consulte [Cómo establecer atributos de sesión para su bot Lex V2](context-mgmt-session-attribs.md). El objeto tiene el siguiente formato:

```
{
    string: string,
    ...
}
```

### Sugerencias en tiempo de ejecución
<a name="lambda-runtime-hints"></a>

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.

### Acción de diálogo
<a name="lambda-dialog-action"></a>

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:
+  **slotElicitationStyle**— Determina cómo Amazon Lex V2 interpreta la entrada de audio del usuario si `dialogAction` es `type` `ElicitSlot` de. Para obtener más información, consulte [Captura de valores de ranura con estilos de ortografía durante la conversación](spelling-styles.md). 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»).
+  **slotToElicit**— Define el espacio 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.

### Intención
<a name="lambda-sessionstate-intent"></a>

Para obtener información sobre la estructura del campo `intent`, consulte [Intención](#lambda-intent).

### originatingRequestId
<a name="lambda-originating-request-id"></a>

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