Interpretar o formato do evento de entrada - Guia do desenvolvedor

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

Interpretar o formato do evento de entrada

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:

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.

O gancho 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.

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.

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.

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

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.

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.

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 seu bot. Para obter uma lista de localidades, consulte Idiomas e locais aceitos pelo Amazon Lex V2.

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

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 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 ou pelo Amazon Bedrock.

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

  2. O type previsto de dialogAction é ElicitSlot.

Você pode usar essas informações para adicionar runtimeHints no ponto certo da conversa. Consulte Melhorar o reconhecimento dos valores de slots com sugestões de runtime para obter 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 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 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.

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.

O estado atual da conversa entre o usuário e seu bot do Amazon Lex V2. Consulte Estado da sessão para obter detalhes sobre a estrutura.

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 Como usar pontuações de confiança na transcrição de voz. 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 para obter detalhes sobre a estrutura.