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 Lambda formato de evento de entrada para Lex V2
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 JSON objeto a seguir mostra o formato geral de um evento do Amazon Lex V2 passado para uma função 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 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.
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 DTMF entrada, 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 a 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, contendo os seguintes campos:
-
sentiment: indica se o sentimento do enunciado é
POSITIVE
,NEGATIVE
,NEUTRAL
, ouMIXED
. -
sentimentScore— Uma estrutura mapeando cada sentimento em um número indicando 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:
-
O valor de
invocationSource
éDialogCodeHook
-
O
type
previsto dedialogAction
éElicitSlot
.
Você pode usar essas informações para adicionar runtimeHints
no ponto certo da conversa. Consulte Melhorando o reconhecimento dos valores dos slots com dicas de tempo de execução na conversa 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
forElicitSlot
. -
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ãoInitial
para a primeira tentativa eRetry1
,Retry2
,Retry3
,Retry4
eRetry5
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 Configurando atributos de solicitação para seu bot Lex V2.
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 Usando pontuações de confiança na transcrição de voz para melhorar as conversas com seu bot Lex V2. 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 a confiança do Amazon Lex V2 de que a intenção corresponde à intenção do usuário.
-
resolvedContext— Uma estrutura contendo o campo
intent
, que mapeia a intenção à qual o enunciado pertence. -
resolvedSlots— Uma estrutura cujas chaves são os nomes de cada espaço 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.