

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

# AWS Lambdaformato de evento de entrada para Lex V2
<a name="lambda-input-format"></a>

A primeira etapa na integração de uma função do Lambda em seu bot do Amazon Lex V2 é entender os campos no evento Amazon Lex V2 e determinar as informações desses campos que você deseja usar ao escrever seu script. O objeto JSON a seguir mostra o formato geral de um evento do Amazon Lex V2 passado para uma função do Lambda:

**nota**  
O formato de entrada pode mudar sem uma alteração correspondente para a `messageVersion`. Seu código não deve gerar um erro, se novos campos estiverem presentes.

```
{
    "messageVersion": "1.0",
    "invocationSource": "DialogCodeHook | FulfillmentCodeHook",
    "inputMode": "DTMF | Speech | Text",
    "responseContentType": "audio/mpeg | audio/ogg | audio/pcm | text/plain; charset=utf-8",
    "sessionId": string,
    "inputTranscript": string,
    "invocationLabel": string,
    "bot": {
        "id": string,
        "name": string,
        "localeId": string,
        "version": string,
        "aliasId": string,
        "aliasName": string
    },
    "interpretations": [
        {
            "interpretationSource": "Bedrock | Lex",
            "intent": {
                // see Intenção for details about the structure
            },
            "nluConfidence": number,
            "sentimentResponse": {
                "sentiment": "MIXED | NEGATIVE | NEUTRAL | POSITIVE",
                "sentimentScore": {
                    "mixed": number,
                    "negative": number,
                    "neutral": number,
                    "positive": number
                }
            }
        },
        ...
    ],
    "proposedNextState": {
        "dialogAction": {
            "slotToElicit": string,
            "type": "Close | ConfirmIntent | Delegate | ElicitIntent | ElicitSlot"
        },
        "intent": {
            // see Intenção for details about the structure
        },
        "prompt": {
            "attempt": string 
        }
    },
    "requestAttributes": {
        string: string,
        ...
    },
    "sessionState": {
        // see Estado da sessão for details about the structure
    },
    "transcriptions": [
        {
            "transcription": string,
            "transcriptionConfidence": number,
            "resolvedContext": {
                "intent": string
            },
            "resolvedSlots": {
                slot name: {
                    // see Slots for details about the structure
                },
                ...
            }
        },
        ...
    ]
}
```

Cada campo no evento de entrada é descrito a seguir:

## messageVersion
<a name="lambda-input-messageversion"></a>

A versão da mensagem que identifica o formato dos dados de evento que estão indo para a função do Lambda e o formato esperado da resposta de uma função do Lambda.

**nota**  
Você configura esse valor ao definir uma intenção. Na implementação atual, apenas o Amazon Lex V2 oferece suporte à versão 1.0 da mensagem. Portanto, o console assume o valor padrão de 1.0 e não mostra a versão da mensagem.

## invocationSource
<a name="lambda-input-invocationsource"></a>

O hook de código que o chamou da função do Lambda. Os seguintes valores são possíveis:

`DialogCodeHook`: o Amazon Lex V2 chamou a função do Lambda após a entrada do usuário.

`FulfillmentCodeHook`: o Amazon Lex V2 chamou a função do Lambda depois de preencher todos os slots necessários e a intenção estar pronta para ser cumprida.

## inputMode
<a name="lambda-input-inputmode"></a>

O modo do enunciado do usuário. Os valores possíveis são:

`DTMF`: o usuário insere o enunciado usando um teclado de tom sensível ao toque (multifrequência de tons duplos).

`Speech`: o usuário falou o enunciado.

`Text`: o usuário digitou o enunciado.

## responseContentType
<a name="lambda-input-responsecontenttype"></a>

O modo de resposta do bot ao usuário. `text/plain; charset=utf-8` indica que o último enunciado foi escrito, enquanto um valor que começa com `audio` indica que o último enunciado foi falado.

## sessionId
<a name="lambda-input-sessionid"></a>

O identificador de sessão alfanumérico usado para a conversa.

## inputTranscript
<a name="lambda-input-inputtranscript"></a>

Uma transcrição da entrada do usuário.
+ Para entrada de texto, esse é o texto que o usuário digitou. Para entrada DTMF, essa é a chave que o usuário insere.
+ Para entrada de voz, esse é o texto no qual o Amazon Lex V2 converte o enunciado do usuário para invocar uma intenção ou preencher um slot.

## invocationLabel
<a name="lambda-input-invocationlabel"></a>

Um valor que indica a resposta que invocou a função do Lambda. Você pode definir rótulos de invocação para a resposta inicial, os slots e a resposta de confirmação.

## bot
<a name="lambda-input-bot"></a>

Informações sobre o bot que processou a solicitação, consistindo nos seguintes campos:
+ **id**: o identificador atribuído ao bot quando você o criou. Você pode ver o ID do bot no console do Amazon Lex V2 na página **Configurações** do bot.
+ **name**: o nome que você deu ao bot ao criá-lo.
+ **localeId** – O identificador da localidade que você usou para o bot. Para obter uma lista de localidades, consulte [Idiomas e locais aceitos pelo Amazon Lex V2](how-languages.md).
+ **version**: a versão do bot que processou a solicitação.
+ **aliasId**: o identificador atribuído ao alias do bot quando você o criou. Você pode ver o ID do alias do bot no console do Amazon Lex V2 na página **Aliases**. Se você não conseguir ver o ID do alias na lista, escolha o ícone de engrenagem no canto superior direito e ative o **ID do alias**.
+ **aliasName**: o nome que você deu ao alias do bot.

## interpretations
<a name="lambda-input-interpretations"></a>

Uma lista de informações sobre intenções que o Amazon Lex V2 considera possíveis coincidências com o enunciado do usuário. Cada item é uma estrutura que fornece informações sobre a correspondência do enunciado com uma intenção, com o seguinte formato:

```
{
    "intent": {
        // see Intenção for details about the structure
    },
    "interpretationSource": "Bedrock | Lex",
    "nluConfidence": number,
    "sentimentResponse": {
        "sentiment": "MIXED | NEGATIVE | NEUTRAL | POSITIVE",
        "sentimentScore": {
            "mixed": number,
            "negative": number,
            "neutral": number,
            "positive": number
        }
    }
}
```

Os campos dentro da estrutura são os seguintes:
+ **intent**: uma estrutura que contém informações sobre a intenção. Consulte [Intenção](lambda-common-structures.md#lambda-intent) para obter detalhes sobre a estrutura.
+ **nluConfidence**: uma pontuação que indica o grau de confiança do Amazon Lex V2 de que a intenção corresponde à intenção do usuário.
+ **sentimentResponse**: uma análise do sentimento da resposta, que contém os seguintes campos:
  + **sentiment**: indica se o sentimento do enunciado é `POSITIVE`, `NEGATIVE`, `NEUTRAL`, ou `MIXED`.
  + **sentimentScore**: uma estrutura que mapeia cada sentimento em um número que indica o quanto o Amazon Lex V2 está confiante de que o enunciado transmite esse sentimento.
+ **InterpretationSource** — Indica se um slot foi resolvido pelo Amazon Lex V2 ou pelo Amazon Bedrock.

## proposedNextState
<a name="lambda-input-proposednextstate"></a>

Se a função do Lambda definir o `dialogAction` do `sessionState` para `Delegate`, esse campo aparecerá e mostrará a proposta do Amazon Lex V2 para a próxima etapa da conversa. Caso contrário, o próximo estado dependerá das configurações que você retorna na resposta da sua função do Lambda. Essa estrutura só estará presente se as duas afirmações abaixo forem verdadeiras:

1. O valor de `invocationSource` é `DialogCodeHook`

1. O `type` previsto de `dialogAction` é `ElicitSlot`.

Você pode usar essas informações para adicionar `runtimeHints` no ponto certo da conversa. Consulte [Como melhorar o reconhecimento de valores de slots com dicas de runtime na conversa](using-hints.md) Para mais informações. `proposedNextState` é uma estrutura que contém os seguintes campos:

A estrutura dos dados de `proposedNextState` é a seguinte:

```
"proposedNextState": {
    "dialogAction": {
        "slotToElicit": string,
        "type": "Close | ConfirmIntent | Delegate | ElicitIntent | ElicitSlot"
    },
    "intent": {
        // see Intenção for details about the structure
    },
    "prompt": {
        "attempt": string 
    }
}
```
+ **dialogAction**: contém informações sobre a próxima etapa proposta pelo Amazon Lex V2. Os campos da estrutura são os seguintes: 
  + **slotToElicit**— O slot a ser obtido a seguir, conforme proposto pelo Amazon Lex V2. Esse campo aparecerá somente se o valor de `type` for `ElicitSlot`.
  + **tipo**: a próxima etapa da conversa, conforme proposto pelo Amazon Lex V2. Os seguintes valores são possíveis:

    `Delegate`: o Amazon Lex V2 determina a próxima ação.

    `ElicitIntent`: a próxima ação é extrair uma intenção do usuário.

    `ElicitSlot`: a próxima ação é extrair um valor de slot do usuário.

    `Close`: encerra o processo de cumprimento da intenção e indica que não haverá uma resposta do usuário.

    `ConfirmIntent`: a próxima ação é perguntar ao usuário se os slots estão corretos e se a intenção está pronta para ser cumprida.
+ **intent**: a intenção que o bot determinou que o usuário está tentando cumprir. Consulte [Intenção](lambda-common-structures.md#lambda-intent) para obter detalhes sobre a estrutura.
+ **prompt**: uma estrutura que contém o campo `attempt`, que é mapeado para um valor que especifica quantas vezes o Amazon Lex V2 solicitou ao usuário o próximo slot. Os valores possíveis são `Initial` para a primeira tentativa e `Retry1`, `Retry2`, `Retry3`, `Retry4` e `Retry5` para as tentativas subsequentes. 

## requestAttributes
<a name="lambda-input-requestattributes"></a>

Uma estrutura que contém os atributos de sessão específicos à solicitação que o cliente envia na solicitação. Use atributos de solicitação para passar informações que não precisam ser mantidas durante toda a sessão. Se não houver atributos de solicitação, o valor será nulo. Para obter mais informações, consulte [Definição de atributos de solicitação para seu bot do Lex V2](context-mgmt-request-attribs.md).

## sessionState
<a name="lambda-input-sessionstate"></a>

O estado atual da conversa entre o usuário e seu bot do Amazon Lex V2. Consulte [Estado da sessão](lambda-common-structures.md#lambda-session-state) para obter detalhes sobre a estrutura.

## transcriptions
<a name="lambda-input-transcriptions"></a>

Uma lista de transcrições que o Amazon Lex V2 considera possíveis coincidências com o enunciado do usuário. Para obter mais informações, consulte [Uso de pontuações de confiança na transcrição de voz para melhorar as conversas com seu bot do Lex V2](using-transcript-confidence-scores.md). Cada item é um objeto com o seguinte formato que contém informações sobre uma possível transcrição:

```
{
    "transcription": string,
    "transcriptionConfidence": number,
    "resolvedContext": {
        "intent": string
    },
    "resolvedSlots": {
        slot name: {
            // see Slots for details about the structure
        },
        ...
    }
}
```

Os campos são descritos abaixo:
+ **transcription**: uma transcrição que o Amazon Lex V2 considera uma possível correspondência com o enunciado de áudio do usuário.
+ **transcriptionConfidence**: uma pontuação que indica o grau de confiança do Amazon Lex V2 de que a intenção corresponde à intenção do usuário.
+ **resolvedContext**: uma estrutura que contém o campo `intent` que mapeia a intenção à qual o enunciado pertence.
+ **resolvedSlots**: uma estrutura cujas chaves são os nomes de cada slot que é resolvido pelo enunciado. Cada nome de slot é mapeado para uma estrutura que contém informações sobre esse slot. Consulte [Slots](lambda-common-structures.md#lambda-slot) para obter detalhes sobre a estrutura.