Interpretar el formato del evento de entrada - Amazon Lex

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.

Interpretar el formato del evento de entrada

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 objeto JSON muestra el formato general de un evento de Amazon Lex V2 pasado a una función de 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 entrada DTMF, esta es la clave que introdujo 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ó.

  • ID de configuración regional: el identificador de la configuración regional que utilizó para su 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.

  • ID de alias: ID de alias del bot: el identificador único asignado al alias del bot cuando se creó. 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.

  • Nombre de alias: 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.

  • Confianza de NLU: puntuación que indica la confianza de Amazon Lex V2 en que la intención coincide con la intención del usuario.

  • Respuesta del sentimiento: un análisis del sentimiento de la respuesta, que contiene los siguientes campos:

    • Sentimiento: indica si el sentimiento del enunciado esPOSITIVE,NEGATIVE, NEUTRAL o. MIXED

    • Puntuación del sentimiento: una estructura que asigna cada sentimiento a un número que indica la confianza de Amazon Lex V2 en que el enunciado transmite ese sentimiento.

  • interpretationSource: indica si Amazon Lex o Amazon Bedrock resuelven un slot.

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:

  1. El valor invocationSource es DialogCodeHook.

  2. La predicción type de dialogAction es ElicitSlot.

Puede usar esta información para agregar runtimeHints en el momento correcto de la conversación. Consulte Mejorar el reconocimiento de los valores de los slots con sugerencias en tiempo de ejecució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 } }
  • Acción de diálogo: contiene información sobre el siguiente paso que propone Amazon Lex V2. Los campos de la estructura son los siguientes:

    • Slot para obtener: el slot que se debe obtener a continuación, según lo propuesto por Amazon Lex V2. Este campo solo aparece si el valor de type es ElicitSlot.

    • 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 son Initial para el primer intento y Retry1, Retry2, Retry3, Retry4 y Retry5 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 Establecer atributos de solicitud.

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 Usar puntuaciones de confianza en la transcripción de voz. 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.

  • Confianza de la transcripción: puntuación que indica la confianza de Amazon Lex V2 en que la intención coincide con la intención del usuario.

  • Contexto resuelto: estructura que contiene el campo intent, que corresponde a la intención a la que pertenece el enunciado.

  • Slots resueltos: estructura cuyas claves son los nombres de cada slot que se resuelve mediante 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.