Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Migración de una función de Lambda de Amazon Lex V1 a Amazon Lex V2

Modo de enfoque
Migración de una función de Lambda de Amazon Lex V1 a Amazon Lex V2 - Amazon Lex V1

Aviso de fin de soporte: el 15 de septiembre de 2025, AWS dejaremos de ofrecer soporte para Amazon Lex V1. Después del 15 de septiembre de 2025, ya no podrá acceder a la consola Amazon Lex V1 ni a los recursos de Amazon Lex V1. Si utiliza Amazon Lex V2, consulte en su lugar la guía Amazon Lex V2.

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.

Aviso de fin de soporte: el 15 de septiembre de 2025, AWS dejaremos de ofrecer soporte para Amazon Lex V1. Después del 15 de septiembre de 2025, ya no podrá acceder a la consola Amazon Lex V1 ni a los recursos de Amazon Lex V1. Si utiliza Amazon Lex V2, consulte en su lugar la guía Amazon Lex V2.

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.

Amazon Lex V2 solo admite una función de Lambda para cada idioma en un bot. La función de Lambda y sus valores se configuran para el alias del bot que se utiliza en tiempo de ejecución.

La función de Lambda se invoca para todas las intenciones en el idioma correspondiente si los enlaces de código de diálogo y de cumplimiento están habilitados para la intención.

Las funciones de Lambda de Amazon Lex V2 tienen un formato de mensaje de entrada y de salida diferente al de Amazon Lex V1. A continuación se indican las diferencias en lo que respecta al formato de entrada de las funciones de Lambda.

  • Amazon Lex V2 reemplaza las estructuras currentIntent y alternativeIntents por la estructura interpretations. Cada interpretación contiene una intención, la puntuación de confianza de NLU para dicha intención y un análisis de opiniones opcional.

  • Amazon Lex V2 mueve los objetos activeContexts y sessionAttributes de Amazon Lex V1 a la estructura sessionState unificada. Esta estructura proporciona información acerca del estado actual de la conversación, incluido el ID de la solicitud de origen.

  • Amazon Lex V2 no devuelve recentIntentSummaryView. En su lugar, utilice la información de la estructura sessionState.

  • La entrada de Amazon Lex V2 proporciona botId y localeId en el atributo bot.

  • La estructura de entrada contiene un atributo inputMode que proporciona información acerca del tipo de entrada, que puede ser texto, voz o DTMF.

A continuación se indican las diferencias en lo que respecta al formato de salida de las funciones de Lambda.

  • Las estructuras activeContexts y sessionAttributes de Amazon Lex V1 se reemplazan por la estructura sessionState en Amazon Lex V2.

  • recentIntentSummaryView no se incluye en el resultado.

  • La estructura dialogAction de Amazon Lex V1 se divide en dos estructuras: dialogAction, que forma parte de la estructura sessionState, y messages, que se requiere cuando dialogAction.type es ElicitIntent. Amazon Lex selecciona los mensajes de esta estructura para mostrárselos al usuario.

Cuando crea un bot con Amazon Lex V2 APIs, solo hay una función Lambda por alias de bot por idioma, en lugar de una función Lambda para cada intención. Si desea continuar usando funciones distintas, puede crear una función de enrutamiento que active una función distinta para cada intención. A continuación se muestra un ejemplo de función de enrutamiento que puede utilizar o modificar en su aplicación.

import os import json import boto3 # reuse client connection as global client = boto3.client('lambda') def router(event): intent_name = event['sessionState']['intent']['name'] fn_name = os.environ.get(intent_name) print(f"Intent: {intent_name} -> Lambda: {fn_name}") if (fn_name): # invoke lambda and return result invoke_response = client.invoke(FunctionName=fn_name, Payload = json.dumps(event)) print(invoke_response) payload = json.load(invoke_response['Payload']) return payload raise Exception('No environment variable for intent: ' + intent_name) def lambda_handler(event, context): print(event) response = router(event) return response

Lista de campos actualizados

En las siguientes tablas se incluye información detallada sobre los campos actualizados en el formato de solicitud y respuesta de Lambda para Amazon Lex V2. Utilice las tablas para asignar campos entre versiones.

Solicitud

Los campos siguientes se han actualizado en el formato de solicitud de las funciones de Lambda.

Contextos activos

La estructura activeContexts ahora forma parte de la estructura sessionState.

Estructura de V1 Estructura de V2

activeContexts

sessionState.activeContexts

ActiveContexts [*]. timeToLive

Estado de sesión. Contextos activos [*]. timeToLive

Contextos activos [*]. timeToLive. timeToLiveInSeconds

Estado de sesión. Contextos activos [*]. timeToLive. timeToLiveInSeconds

Contextos activos [*]. timeToLive. turnsToLive

Estado de sesión. Contextos activos [*]. timeToLive. turnsToLive

activeContexts[*].name

sessionState.activeContexts[*].name

activeContexts[*].parameters

sessionState.activeContexts[*].contextAttributes

Intenciones alternativas

La lista de interpretaciones del índice 1 al N contiene la lista de intenciones alternativas que Amazon Lex V2 ha predicho, junto con las puntuaciones de confianza correspondientes. recentIntentSummaryView se ha eliminado de la estructura de solicitud en Amazon Lex V2. Para obtener información acerca de recentIntentSummaryView, utilice la operación GetSession.

Estructura de V1 Estructura de V2

alternativeIntents

interpretations[1:*]

recentIntentSummaryVer

N/A

Bot

En Amazon Lex V2, los bots y los alias cuentan con identificadores. El ID del bot forma parte de la entrada del enlace de código. Se incluye el ID del alias, pero no su nombre. Amazon Lex V2 admite varias configuraciones regionales para el mismo bot, por lo que se incluye el ID de la configuración regional.

Estructura de V1 Estructura de V2

bot

bot

bot.name

bot.name

N/A

bot.id

bot.alias

N/A

N/A

bot.aliasId

bot.version

bot.version

N/A

bot.localeId

Intención actual

La estructura sessionState.intent contiene los detalles de la intención activa. Amazon Lex V2 también devuelve una lista con todas las intenciones, incluidas intenciones alternativas, en la estructura interpretations. El primer elemento de la lista de interpretaciones coincide con el primer elemento de sessionState.intent.

Estructura de V1 Estructura de V2

currentIntent

sessionState.intent O interpretations[0].intent

currentIntent.name

sessionState.intent.name O interpretations[0].intent.name

CurrentIntent. nluConfidenceScore

interpretations[0].nluConfidence.score

Acción de diálogo

El campo confirmationStatus ahora forma parte de la estructura sessionState.

Estructura de V1 Estructura de V2

currentIntent.confirmationStatus

sessionState.intent.confirmationState O interpretations[0].intent.confirmationState

N/A

sessionState.intent.state O interpretations[*].intent.state

Amazon Kendra

El campo kendraResponse ahora forma parte de las estructuras sessionState y interpretations.

Estructura de V1 Estructura de V2

kendraResponse

sessionState.intent.kendraResponse O interpretations[0].intent.kendraResponse

Opinión

La estructura sentimentResponse se mueve a la nueva estructura interpretations.

Estructura de V1 Estructura de V2

sentimentResponse

interpretations[0].sentimentResponse

sentimentResponse.sentimentLabel

interpretations[0].sentimentResponse.sentiment

sentimentResponse.sentimentScore

interpretations[0].sentimentResponse.sentimentScore

Slots

Amazon Lex V2 proporciona un solo objeto slots en el interior de la estructura sessionState.intent que contiene los valores resueltos, el valor interpretado y el valor original de lo que ha dicho el usuario. Amazon Lex V2 también admite ranuras con múltiples valores si se establece slotShape como List y si se configura la lista values. El campo value admite ranuras con un solo valor y se asume que su forma es Scalar.

Estructura de V1 Estructura de V2

currentIntent.slots

sessionState.intent.slots O interpretations[0].intent.slots

currentIntent.slots[*].value

sessionState.intent.slots[*].value.interpretedValue O interpretations[0].intent.slots[*].value.interpretedValue

N/A

sessionState.intent.slots[*].value.shape O interpretations[0].intent.slots[*].shape

N/A

sessionState.intent.slots[*].values O interpretations[0].intent.slots[*].values

currentIntent.slotDetails

sessionState.intent.slots O interpretations[0].intent.slots

currentIntent.slotDetails[*].resolutions

sessionState.intent.slots[*].resolvedValues O interpretations[0].intent.slots[*].resolvedValues

currentIntent.slotDetails[*].originalValue

sessionState.intent.slots[*].originalValue O interpretations[0].intent.slots[*].originalValue

Otros

El campo sessionId de Amazon Lex V2 es el mismo que el campo userId de Amazon Lex V1. Amazon Lex V2 también envía el objeto inputMode de la persona que llama: texto, DTMF o voz.

Estructura de V1 Estructura de V2

userId

sessionId

inputTranscript

inputTranscript

invocationSource

invocationSource

outputDialogMode

responseContentType

messageVersion

messageVersion

sessionAttributes

sessionState.sessionAttributes

requestAttributes

requestAttributes

N/A

inputMode

N/A

originatingRequestId

Respuesta

Los campos siguientes se han modificado en el formato de mensaje de respuesta de las funciones de Lambda.

Contextos activos

La estructura activeContexts se mueve a la estructura sessionState.

Estructura de V1 Estructura de V2

activeContexts

sessionState.activeContexts

Contextos activos [*]. timeToLive

Estado de sesión. Contextos activos [*]. timeToLive

Contextos activos [*]. timeToLive. timeToLiveInSeconds

Estado de sesión. Contextos activos [*]. timeToLive. timeToLiveInSeconds

Contextos activos [*]. timeToLive. turnsToLive

Estado de sesión. Contextos activos [*]. timeToLive. turnsToLive

activeContexts[*].name

sessionState.activeContexts[*].name

activeContexts[*].parameters

sessionState.activeContexts[*].contextAttributes

Acción de diálogo

La estructura dialogAction se mueve a la estructura sessionState. Ahora puede especificar varios mensajes en una acción de diálogo. La estructura genericAttachments es ahora la estructura imageResponseCard.

Estructura de V1 Estructura de V2

Acción de diálogo

sessionState.dialogAction

dialogAction.type

sessionState.dialogAction.type

DialogAction. slotToElicit

Estado de sesión. Intent.DialogAction. slotToElicit

dialogAction.type.fulfillmentState

sessionState.intent.state

dialogAction.message

Mensajes

dialogAction.message.contentType

messages[*].contentType

dialogAction.message.content

messages[*].content

dialogAction.responseCard

mensajes [*]. imageResponseCard

dialogAction.responseCard.version

N/A

dialogAction.responseCard.contentType

messages[*].contentType

dialogAction.responseCard.genericAttachments

N/A

dialogAction.responseCard.genericAttachments[*].title

mensajes [*]. imageResponseCard.título

dialogAction.responseCard.genericAttachments[*].subTitle

mensajes [*]. imageResponseCard.subtítulo

dialogAction.responseCard.genericAttachments[*].imageUrl

mensajes [*]. imageResponseCard.URL de la imagen

dialogAction.responseCard.genericAttachments[*].buttons

mensajes [*]. imageResponseCard.botones

dialogAction.responseCard.genericAttachments[*].buttons[*].value

mensajes [*]. imageResponseCard.botones [*] .valor

dialogAction.responseCard.genericAttachments[*].buttons[*].text

mensajes [*]. imageResponseCard.botones [*] .texto

DialogAction. kendraQueryRequestCarga útil

DialogAction. kendraQueryRequestCarga útil

DialogAction. kendraQueryFilterCadena

DialogAction. kendraQueryFilterCadena

Intenciones y ranuras

Los campos de intención y ranura que formaban parte de la estructura dialogAction ahora forman parte de la estructura sessionState.

Estructura de V1 Estructura de V2

dialogAction.intentName

sessionState.intent.name

dialogAction.slots

sessionState.intent.slots

dialogAction.slots[*].key

sessionState.intent.slots[*].key

dialogAction.slots[*].value

sessionState.intent.slots[*].value.interpretedValue

N/A

sessionState.intent.slots[*].value.shape

N/A

sessionState.intent.slots[*].values

Otros

La estructura sessionAttributes ahora forma parte de la estructura sessionState. La estructura recentIntentSummaryReview se ha eliminado.

Estructura de V1 Estructura de V2

sessionAttributes

sessionState.sessionAttributes

recentIntentSummaryVer

N/A

En esta página

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.