

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Estruturas comuns em uma AWS Lambda função para o Amazon Lex V2
<a name="lambda-common-structures"></a>

Na resposta do Lambda, há várias estruturas que se repetem. Detalhes sobre essas estruturas comuns são fornecidos nesta seção.

## Intenção
<a name="lambda-intent"></a>

```
"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       }
}
```

O campo `intent` é mapeado para um objeto com os seguintes campos:

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

Indica se o usuário confirmou os slots da intenção e se a intenção está pronta para ser atendida. Os seguintes valores são possíveis:

`Confirmed`: o usuário confirma que os valores do slot estão corretos.

`Denied`: o usuário indica que os valores do slot estão incorretos.

`None`: o usuário ainda não chegou ao estágio de confirmação.

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

O nome da intenção.

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

Informações sobre os slots necessários para cumprir a intenção. Consulte [Slots](#lambda-slot) para obter detalhes sobre a estrutura.

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

Indica o estado de cumprimento da intenção. Os seguintes valores são possíveis:

`Failed`: o bot falhou em cumprir a intenção.

`Fulfilled`: o bot concluiu o cumprimento da intenção.

`FulfillmentInProgress`: o bot está no meio do cumprimento da intenção.

`InProgress`: o bot está no meio da obtenção dos valores de slot necessários para cumprir a intenção.

`ReadyForFulfillment`: o bot obteve todos os valores do slot para a intenção e está pronto para cumpri-la.

`Waiting`: o bot está aguardando uma resposta do usuário (limitado a conversas de streaming).

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

Contém informações sobre os resultados da consulta de pesquisa do Kendra. Esse campo aparecerá somente se a intenção for `KendraSearchIntent`. Consulte [a sintaxe de resposta na chamada de API de Consulta para Kendra](https://docs.aws.amazon.com/kendra/latest/dg/API_Query.html#API_Query_ResponseSyntax) Para mais informações.

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

O campo `slots` existe dentro de uma estrutura `intent` e é mapeado para uma estrutura cujas chaves são os nomes dos slots para essa intenção. Se o slot não for um slot de vários valores (consulte [Usar vários valores em um slot](multi-valued-slots.md) para obter mais detalhes), ele será mapeado para uma estrutura com o formato a seguir. Observe que o `shape` é `Scalar`.

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

Se o slot for um slot de vários valores, o objeto para o qual ele é mapeado contém outro campo chamado `values`, que é mapeado para uma lista de estruturas, cada uma contendo informações sobre um slot que compõe o slot de vários valores. O formato de cada objeto na lista corresponde ao do objeto para o qual um slot normal é mapeado. Observe que o `shape` é `List`, mas o `shape` dos slots de componentes abaixo `values` é `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,
                    ...
                ]
            }
        },
        ...
    ]
}
```

Os campos no objeto do slot estão descritos abaixo:

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

O formato do slot. Esse valor é `List` válido se houver vários valores no slot (consulte [Usar vários valores em um slot](multi-valued-slots.md) para obter mais detalhes) e, caso contrário, é `Scalar`.

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

Um objeto contendo informações sobre o valor que o usuário forneceu para um slot e a interpretação do Amazon Lex V2, no seguinte formato:

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

Os campos são descritos abaixo:
+ **OriginalValue** — A parte da resposta do usuário à elicitação do slot que o Amazon Lex V2 determina ser relevante para o valor do slot.
+ **InterpretedValue** — O valor que o Amazon Lex V2 determina para o slot, de acordo com a entrada do usuário.
+ **ResolvedValues** — Uma lista de valores que o Amazon Lex V2 determina como possíveis resoluções para a entrada do usuário.

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

Uma lista de objetos contendo informações sobre os slots que compõem o slot de vários valores. O formato de cada objeto corresponde ao de um slot normal, com os campos `shape` e `value` descritos acima. `values` só aparece se o slot consistir em vários valores (consulte [Usar vários valores em um slot](multi-valued-slots.md) para obter mais detalhes). O objeto JSON a seguir mostra dois slots de componentes:

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

## Estado da sessão
<a name="lambda-session-state"></a>

O campo `sessionState` é mapeado para um objeto contendo informações sobre o estado da conversa com o usuário. Os campos reais que aparecem no objeto dependem do tipo de ação da caixa de diálogo. Consulte [Campos necessários na resposta](lambda-response-format.md#lambda-response-required) para obter os campos obrigatórios em uma resposta do Lambda. O formato do objeto `sessionState` é o seguinte:

```
"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 Intenção for details about the structure
    },
    "originatingRequestId": string
}
```

Os campos são descritos abaixo:

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

Uma lista de objetos que contém informações sobre um contexto que um usuário está usando em uma sessão. Use contextos para facilitar e controlar o reconhecimento de intenções. Para mais informações sobre contextos, consulte [Definição do contexto de intenção para seu bot do Lex V2](context-mgmt-active-context.md). Cada objeto é formatado como segue:

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

Os campos são descritos abaixo:
+ **name**: o nome do contexto.
+ **contextAttributes**: um objeto que contém os nomes dos atributos do contexto e os valores para os quais eles são mapeados.
+ **timeToLive**— Um objeto que especifica por quanto tempo o contexto permanece ativo. Esse objeto pode conter um ou ambos os seguintes campos:
  + **timeToLiveInSeconds**— O número de segundos em que o contexto permanece ativo.
  + **turnsToLive**— O número de turnos em que o contexto permanece ativo.

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

Um mapa de key/value pares representando informações de contexto específicas da sessão. Para obter mais informações, consulte [Definição de atributos de sessão para seu bot do Lex V2](context-mgmt-session-attribs.md). O objeto é formatado da seguinte forma:

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

### runtimeHints
<a name="lambda-runtime-hints"></a>

Fornece dicas sobre as frases que um cliente provavelmente usará em um slot para melhorar o reconhecimento de áudio. Os valores que você fornece nas dicas aumentam o reconhecimento de áudio desses valores em relação a palavras com sons semelhantes. O formato do objeto `runtimeHints` é o seguinte:

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

O campo `slotHints` é mapeado para um objeto cujos campos são os nomes das intenções no bot. Cada nome de intenção é mapeado para um objeto cujos campos são os nomes dos slots dessa intenção. Cada nome de slot é mapeado para uma estrutura com um único campo `runtimeHintValues`, que é uma lista de objetos. Cada objeto contém um campo `phrase` que é mapeado para uma dica.

### dialogAction
<a name="lambda-dialog-action"></a>

Determina a próxima ação a ser tomada pelo Amazon Lex V2. O formato do objeto é o seguinte:

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

Os campos são descritos abaixo:
+  **slotElicitationStyle**— Determina como o Amazon Lex V2 interpreta a entrada de áudio do usuário, se for o `type` caso. `dialogAction` `ElicitSlot` Para obter mais informações, consulte [Captura de valores de slots com estilos ortográficos durante a conversa](spelling-styles.md). Os seguintes valores são possíveis:

  `Default`: o Amazon Lex V2 interpreta a entrada de áudio da maneira padrão para preencher um slot.

  `SpellByLetter`: o Amazon Lex V2 escuta a ortografia do valor do slot pelo usuário.

  `SpellByWord`: o Amazon Lex V2 escuta a ortografia do valor do slot pelo usuário usando palavras associadas a cada letra (por exemplo, “a como em avião”).
+  **slotToElicit**— Define o slot a ser extraído do usuário se o `type` for. `dialogAction` `ElicitSlot` 
+ **type**: define a ação que o bot deve executar. Os seguintes valores são possíveis:

  `Delegate`: permite que o Amazon Lex V2 determine a próxima etapa.

  `ElicitIntent`: solicita que o cliente expresse uma intenção.

  `ConfirmIntent`: confirma os valores dos slots do cliente e se a intenção está pronta para ser cumprida.

  `ElicitSlot`: solicita que o cliente forneça um valor de slot para uma intenção.

  `Close`: encerra o processo de cumprimento da intenção.

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

Consulte [Intenção](#lambda-intent) para obter a estrutura do campo `intent`.

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

Um identificador exclusivo da solicitação. Esse campo é opcional para a resposta do Lambda.