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.
AWS Lambda formato de evento de entrada para Lex V2
El primer paso para integrar una función de Lambda en el bot de Amazon Lex V2 consiste en comprender los campos del evento de Amazon Lex V2 y determinar la información de estos campos que desea utilizar al escribir el script. El siguiente JSON objeto muestra el formato general de un evento de Amazon Lex V2 pasado a una función Lambda:
nota
El formato de entrada puede cambiar sin un cambio correspondiente de la messageVersion
. El código no debería devolver un error si hay nuevos campos.
{ "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 Intención 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 Intención for details about the structure }, "prompt": { "attempt":string
} }, "requestAttributes": {string
:string
, ... }, "sessionState": { // see Estado de la sesión 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 de evento se describe a continuación.
La versión del mensaje que identifica el formato de los datos del evento que se van a pasar a la función de Lambda y el formato previsto de la respuesta de una función de Lambda.
nota
Puede configurar este valor a la hora de definir una intención. En la implementación actual, Amazon Lex V2 solo admite la versión 1.0 de los mensajes. Por lo tanto, la consola asume el valor predeterminado de 1.0 y no muestra el mensaje de la versión.
El enlace de código que llamó a la función de Lambda. Se admiten los siguientes valores:
DialogCodeHook
: Amazon Lex V2 llamó a la función de Lambda después de la entrada del usuario.
FulfillmentCodeHook
: Amazon Lex V2 llamó a la función de Lambda después de llenar todos los slots requeridos y la intención estaba lista para su cumplimiento.
El modo de enunciado del usuario. Los valores posibles son los siguientes:
DTMF
: el usuario introdujo el enunciado mediante un teclado táctil (multifrecuencia de doble tono).
Speech
: el usuario pronunció el enunciado.
Text
: el usuario escribió el enunciado.
El modo de respuesta del bot al usuario. text/plain; charset=utf-8
indica que se escribió el último enunciado, mientras que un valor que comience por audio
indica que se pronunció el último enunciado.
El identificador de sesión alfanumérico utilizado para la conversación.
Una transcripción de la entrada del usuario.
-
Para la entrada de texto, este es el texto que escribió el usuario. Para la DTMF entrada, esta es la clave que introduce el usuario.
-
En el caso de entrada de voz, este es el texto en el que Amazon Lex V2 convierte el enunciado del usuario para invocar una intención o llenar un slot.
Un valor que indica la respuesta que invocó la función de Lambda. Puede establecer etiquetas de invocación para la respuesta inicial, los slots y la respuesta de confirmación.
Información sobre el bot que procesó la solicitud, que consta de los siguientes campos:
-
id: el identificador único asignado al bot cuando se creó. Puede ver el ID del bot en la consola de Amazon Lex V2 en la página Configuración del bot.
-
Nombre: el nombre que le dio al bot cuando lo creó.
-
localeId— El identificador de la configuración regional que utilizaste para tu bot. Para obtener una lista de las configuraciones regionales, consulte Lenguajes y configuraciones regionales compatibles con Amazon Lex V2.
-
Versión: versión del bot que ha procesado la solicitud.
-
aliasId— El identificador asignado al alias del bot cuando lo creaste. Puede ver el ID del alias del bot en la consola de Amazon Lex V2 en la página Alias. Si no puede ver el ID de alias en la lista, seleccione el icono con forma de engranaje situado en la esquina superior derecha y active el ID de alias.
-
aliasName— El nombre que le diste al alias del bot.
Lista de información sobre las intenciones que Amazon Lex V2 considera posibles coincidencias con el enunciado del usuario. Cada elemento es una estructura que proporciona información sobre la coincidencia del enunciado con una intención, con el siguiente formato:
{ "intent": { // see Intención 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
} } }
Los campos de la estructura son los siguientes:
-
Intención: estructura que contiene información sobre la intención. Consulte Intención para obtener más información sobre la estructura.
-
nluConfidence— Una puntuación que indica la confianza de Amazon Lex V2 en que la intención coincide con la intención del usuario.
-
sentimentResponse— Un análisis del sentimiento de la respuesta, que contiene los siguientes campos:
-
Sentimiento: indica si el sentimiento del enunciado es
POSITIVE
,NEGATIVE
,NEUTRAL
o.MIXED
-
sentimentScore— Una estructura que asigna cada sentimiento a un número que indica la confianza de Amazon Lex V2 en que la expresión transmite ese sentimiento.
-
-
interpretationSource— Indica si Amazon Lex o Amazon Bedrock resuelven un espacio.
Si la función de Lambda establece la dialogAction
del sessionState
en Delegate
, este campo aparece y muestra la propuesta de Amazon Lex V2 para el siguiente paso de la conversación. En caso contrario, el siguiente estado depende de la configuración que devuelva en la respuesta de su función de Lambda. Esta estructura solo está presente si las dos afirmaciones siguientes son verdaderas:
-
El valor
invocationSource
esDialogCodeHook
. -
La predicción
type
dedialogAction
esElicitSlot
.
Puede usar esta información para agregar runtimeHints
en el momento correcto de la conversación. Consulte Mejora del reconocimiento de los valores de las tragaperras con sugerencias sobre el tiempo de ejecución en la conversación para obtener más información. proposedNextState
es una estructura que contiene los siguientes campos:
La estructura de proposedNextState
es la siguiente:
"proposedNextState": { "dialogAction": { "slotToElicit":
string
, "type": "Close | ConfirmIntent | Delegate | ElicitIntent | ElicitSlot" }, "intent": { // see Intención for details about the structure }, "prompt": { "attempt":string
} }
-
dialogAction— Contiene información sobre el siguiente paso que propone Amazon Lex V2. Los campos de la estructura son los siguientes:
-
slotToElicit— El espacio a obtener a continuación, según lo propuesto por Amazon Lex V2. Este campo solo aparece si el valor de
type
esElicitSlot
. -
Tipo: el siguiente paso de la conversación propuesto por Amazon Lex V2. Se admiten los siguientes valores:
Delegate
: Amazon Lex V2 determina la siguiente acción.ElicitIntent
: la siguiente acción es obtener una intención por parte del usuario.ElicitSlot
: la siguiente acción es obtener un slot por parte del usuario.Close
: finaliza el proceso de cumplimiento de la intención e indica que no habrá respuesta por parte del usuario.ConfirmIntent
: la siguiente acción consiste en preguntar al usuario si los slots son correctos y si la intención está lista para ser cumplida.
-
-
intención: la intención que el bot ha determinado que el usuario intenta cumplir. Consulte Intención para obtener más información sobre la estructura.
-
Solicitud: una estructura que contiene el campo
attempt
, que se asigna a un valor que especifica cuántas veces Amazon Lex V2 ha pedido al usuario que pase al siguiente slot. Los valores posibles sonInitial
para el primer intento yRetry1
,Retry2
,Retry3
,Retry4
yRetry5
para los intentos posteriores.
Una estructura que contiene atributos específicos de la solicitud que el cliente envía en la solicitud. Utilice los atributos de solicitud para pasar información que no tiene por qué persistir durante toda la sesión. Si no hay atributos de solicitud, el valor será nulo. Para obtener más información, consulte Configuración de los atributos de solicitud para su bot Lex V2.
El estado actual de la conversación entre el usuario y el bot de Amazon Lex V2. Consulte Estado de la sesión para obtener más información sobre la estructura.
Lista de transcripciones que Amazon Lex V2 considera posibles coincidencias con el enunciado del usuario. Para obtener más información, consulte Usa las puntuaciones de confianza en la transcripción de voz para mejorar las conversaciones con tu bot Lex V2. Cada elemento es un objeto con el siguiente formato, que contiene información sobre una posible transcripción:
{ "transcription":
string
, "transcriptionConfidence":number
, "resolvedContext": { "intent":string
}, "resolvedSlots": {slot name
: { // see Slots for details about the structure }, ... } }
Los siguientes campos se describen a continuación:
-
Transcripción: una transcripción que Amazon Lex V2 considera una posible coincidencia con el enunciado de audio del usuario.
-
transcriptionConfidence— Una puntuación que indica la confianza de Amazon Lex V2 en que la intención coincide con la intención del usuario.
-
resolvedContext— Una estructura que contiene el campo
intent
y que corresponde a la intención a la que se refiere el enunciado. -
resolvedSlots— Una estructura cuyas claves son los nombres de cada ranura resuelta por el enunciado. El nombre de cada slot se asigna a una estructura que contiene información sobre ese slot. Consulte Slots para obtener más información sobre la estructura.