Amazon Lex es un servicio de inteligencia artificial (IA) totalmente administrado con modelos avanzados de lenguaje natural para diseñar, construir, probar e implementar interfaces conversacionales en aplicaciones. Emplea tecnologías avanzadas de aprendizaje profundo para comprender las aportaciones de los usuarios, lo que permite a los desarrolladores crear chatbots, asistentes virtuales y otras aplicaciones que pueden interactuar con los usuarios en lenguaje natural.
Administrar sus bots de Amazon Lex usando Formación en la nube de AWS le permite crear plantillas que definen el bot y todos los recursos de AWS de los que depende. AWS CloudFormation proporciona y configura esos recursos en su nombre, eliminando el riesgo de error humano al implementar bots en nuevos entornos. Los beneficios de utilizar CloudFormation incluyen:
- Consistencia – Una plantilla de CloudFormation proporciona una forma más consistente y automatizada de implementar y administrar los recursos asociados con un bot de Amazon Lex.
- Control de versiones – Con AWS CloudFormation, puede utilizar sistemas de control de versiones como Git para administrar sus plantillas de CloudFormation. Esto le permite mantener diferentes versiones de su bot y volver a versiones anteriores si es necesario.
- Reutilizabilidad – Puede reutilizar las plantillas de CloudFormation en múltiples entornos, como desarrollo, ensayo y producción. Esto ahorra tiempo y esfuerzo al definir el mismo bot en diferentes entornos.
- Ampliabilidad – A medida que su bot de Amazon Lex crece en complejidad, administrarlo a través del Consola de administración de AWS se vuelve más desafiante. AWS CloudFormation permite un enfoque más ágil y eficiente para administrar la definición y los recursos del bot.
- Automatización – El uso de una plantilla de CloudFormation le permite automatizar el proceso de implementación. Puede utilizar servicios de AWS como AWS CodePipeline y Construcción de código AWS para crear, probar e implementar su bot de Amazon Lex automáticamente.
En esta publicación, lo guiamos a través de los pasos necesarios para crear una plantilla de CloudFormation para un bot de Amazon Lex V2.
Descripción general de la solución
Hemos elegido el Reservar viaje bot como nuestro punto de partida para este ejercicio. Usamos una plantilla de CloudFormation para crear un nuevo bot desde cero, incluida la definición de intenciones, espacios y otros componentes necesarios. Además, exploramos temas como control de versiones, alias, integración AWS Lambda funciones, creando ramas condicionales y habilitando el registro.
Requisitos previos
Debe tener los siguientes requisitos previos:
- Un cuenta de AWS para crear e implementar una plantilla de CloudFormation
- Lo necesario Gestión de acceso e identidad de AWS (SOY) permisos para implementar AWS CloudFormation y los recursos utilizados en la plantilla
- Conocimientos básicos de Amazon Lex, funciones Lambda y servicios asociados.
- Conocimientos básicos de creación e implementación de plantillas de CloudFormation.
Crear un rol de IAM
Para comenzar, debe crear una función de IAM que utilizará el bot. Puede lograr esto inicializando una plantilla de CloudFormation y agregando la función de IAM como recurso. Puede utilizar la siguiente plantilla para crear el rol. Si usted descargar la plantilla de ejemplo e implementarlo, debería ver que se ha creado una función de IAM. Proporcionamos ejemplos de plantillas a medida que avanzamos en esta publicación y las fusionamos a medida que avanzamos.
Configurar el robot de Amazon Lex
A continuación, debe agregar la definición del bot. La siguiente es la plantilla YAML para la definición del bot de Amazon Lex; construyes los componentes necesarios uno por uno:
Para crear un bot que solo incluya la definición del bot sin ninguna intención, puede utilizar la siguiente plantilla. Aquí, especifica el nombre del bot, el ARN del rol que creó previamente, la configuración de privacidad de datos y más:
Puede descargar la plantilla actualizada. La implementación de la plantilla actualizada le permite crear tanto el rol como la definición del bot. Ten en cuenta que eres actualizando la pila que creaste en el paso anterior.
El último paso consiste en definir el BotLocales
, que forman la mayor parte de la funcionalidad del bot. Esto incluye, por ejemplo, Intents
y Slot types
. La siguiente es la plantilla YAML:
En este caso, construyes el BookHotel
intent, que requiere un tipo de espacio personalizado para los tipos de habitación. Tu configuras el LocaleId
entonces el VoiceSettings
. Luego agregas el SlotTypes
y sus valores correspondientes.
El siguiente paso es definir el Intents
comenzando con la primera intención, BookHotel
, lo que implica agregar expresiones, espacios y prioridades de espacios. Los detalles de estos nodos se demuestran en la plantilla proporcionada. Finalmente, agregas la segunda intención, que es la FallbackIntent
. Vea el siguiente código:
Puede descargue la plantilla de CloudFormation por el trabajo realizado hasta ahora. Después de usted actualiza tu pila Con esta plantilla, se implementará un bot funcional. En la consola de Amazon Lex, puede confirmar que existe una versión borrador del bot y un alias predeterminado llamado TestBotAlias
Ha sido creado.
Crear una nueva versión y alias del bot
Amazon Lex admite la publicación versiones de bots, intents y tipos de slots para que pueda controlar la implementación de sus aplicaciones cliente. Una versión es una instantánea numerada de la definición de su bot que puede publicar para usarla en diferentes partes de su flujo de trabajo, como desarrollo, implementación beta y producción. Los bots de Amazon Lex también son compatibles alias. Un alias es un puntero a una versión específica de un bot. Con un alias, puede actualizar la versión de sus aplicaciones cliente. En escenarios prácticos, los alias de bot se utilizan para implementaciones azules/verdes y para gestionar configuraciones específicas del entorno, como entornos de desarrollo y producción.
Para ilustrar, digamos que apunta un alias a la versión 1 de su bot. Cuando llegue el momento de actualizar el bot, puede publicar la versión 2 y cambiar el alias para que apunte a la nueva versión. Debido a que sus aplicaciones usan el alias en lugar de una versión específica, todos los clientes reciben la nueva funcionalidad sin necesidad de actualizaciones.
Tenga en cuenta que cuando modifica la plantilla de CloudFormation e inicia la implementación, los cambios se implementan dentro de la versión borrador, destinada principalmente a pruebas. Después de completar su fase de prueba, puede establecer una nueva versión para finalizar los cambios que ha incorporado hasta ahora.
A continuación, crea una nueva versión del bot basada en su borrador, configura un nuevo alias y vincula la versión a este alias. Los siguientes son los dos nuevos recursos que puede agregar a su plantilla:
Puede descargar la nueva versión de la plantilla e impleméntelo actualizando su pila. Puede ver en la consola de Amazon Lex que se crea una nueva versión y se asocia con un nuevo alias llamado BookHotelDemoAlias
.
Cuando crea una nueva versión de un bot de Amazon Lex, normalmente incrementa el número de versión de forma secuencial, comenzando desde 1. Para discernir una versión específica, puede consultar su descripción.
Agregar una función Lambda
Para inicializar valores o validar la entrada del usuario para su bot, puede agregar una función Lambda como enlace de código a su bot. De manera similar, también puede utilizar una función Lambda para el cumplimiento, por ejemplo, escribir datos en bases de datos o llamar a API para guardar la información recopilada. Para obtener más información, consulte Habilitación de lógica personalizada con funciones de AWS Lambda.
Agreguemos un nuevo recurso para la función Lambda a la plantilla de CloudFormation. Aunque generalmente no se recomienda incrustar código en las plantillas de CloudFormation, lo hacemos aquí únicamente para que la implementación de la demostración sea menos complicada. Vea el siguiente código:
Para utilizar esta función Lambda para el cumplimiento, habilite la configuración del enlace de código en su intención:
Debido a que realizó cambios en su bot, puede crear una nueva versión del bot agregando un nuevo recurso llamado BookHotelVersionWithLambda
en la plantilla:
La función Lambda está asociada con un alias de bot. Amazon Lex V2 puede utilizar una función Lambda por alias de bot por idioma. Por lo tanto, debe actualizar su alias en la plantilla para agregar el recurso de la función Lambda. Puedes hacerlo en el BotAliasLocalSettings
sección. También debe señalar el alias a la nueva versión que creó. El siguiente código es la configuración de alias modificada:
Hasta ahora, solo ha vinculado la función Lambda con el alias. Sin embargo, debe otorgar permiso para permitir que el alias invoque la función Lambda. En el siguiente código, agrega el permiso de invocación de Lambda para Amazon Lex y especifica el ARN del alias como ARN de origen:
Puede descargar la última versión de la plantilla. Después de actualizar su pila con esta versión, tendrá un bot de Amazon Lex integrado con una función Lambda.
Ramas condicionales
Ahora exploremos la función de rama condicional del bot Amazon Lex y consideremos un escenario en el que no se permite reservar más de cinco noches en Seattle durante la próxima semana. Según los requisitos comerciales, la conversación debe finalizar con un mensaje apropiado si el usuario intenta reservar más de cinco noches en Seattle. La rama condicional para eso está representada en la plantilla de CloudFormation bajo el SlotCaptureSetting
:
Debido a que cambió la definición del bot, necesita crear una nueva versión en la plantilla y vincularla con el alias. Esta es una modificación temporal porque la empresa planea permitir grandes reservas en Seattle pronto. Los siguientes son los dos nuevos recursos que agrega a la plantilla:
Puede descargar la plantilla actualizada. Después de actualizar su pila con esta versión de plantilla, el alias se dirigirá a la versión que incorpora la función de bifurcación condicional. Para deshacer esta modificación, puede actualizar el alias para volver a la versión anterior.
Registros
También puede habilitar registros para su bot de Amazon Lex. Para hacerlo, debes actualizar el rol del bot para otorgar permisos de escritura. Amazon CloudWatch registros. El siguiente es un ejemplo de cómo agregar una política de CloudWatch al rol:
Para garantizar un comportamiento coherente y predecible, debe ser lo más específico posible al definir nombres y propiedades de recursos en las plantillas de CloudFormation. Esto se debe a que el uso del carácter comodín
en las plantillas de CloudFormation puede plantear riesgos potenciales de seguridad y provocar consecuencias no deseadas. Por lo tanto, se recomienda evitar el uso de comodines y, en su lugar, utilizar valores explícitos siempre que sea posible.
A continuación, crea un recurso de grupo de registros de CloudWatch, como se muestra en el siguiente código, para dirigir sus registros a este grupo:
Finalmente, actualiza su alias para habilitar la configuración del registro de conversaciones: Cuando actualiza la pila con esta plantilla, habilita los registros de conversación para su bot. No se crea una nueva versión en este paso porque no hay cambios en su recurso de bot. Puededescargue la última versión de la plantilla
.
Limpiar
Para evitar incurrir en cargos en el futuro, elimine la pila de CloudFormation que creó.
Conclusión
En esta publicación, analizamos el proceso paso a paso para crear una plantilla de CloudFormation para un bot de Amazon Lex V2. Inicialmente, implementamos un bot básico, luego exploramos el potencial de los alias y las versiones y cómo usarlos de manera eficiente con plantillas. A continuación, aprendimos cómo integrar una función Lambda con un bot Amazon Lex V2 e implementamos bifurcaciones condicionales en el flujo de conversación del bot para adaptarse a los requisitos comerciales. Finalmente, agregamos funciones de registro creando un recurso de grupo de registro de CloudWatch y actualizando la función del bot con los permisos necesarios.
La plantilla permite una implementación y gestión sencillas del bot, con la capacidad de revertir los cambios según sea necesario. En general, la plantilla de CloudFormation es útil para administrar y optimizar un bot de Amazon Lex V2. Como siguiente paso, puedes explorar ejemplos de robots de Amazon Lex
y aplique las técnicas analizadas en esta publicación para convertirlas en plantillas de CloudFormation. Esta práctica práctica solidificará su comprensión de la administración de bots de Amazon Lex V2 a través de infraestructura como código.
Sobre los autores Thomas Rindfuss
es arquitecto sénior de soluciones en el equipo de Amazon Lex. Inventa, desarrolla, crea prototipos y evangeliza nuevas características y soluciones técnicas para servicios de Language AI que mejoran la experiencia del cliente y facilitan la adopción. Rijeesh Akkambeth Chathoth
es consultor de servicios profesionales en AWS. Ayuda a los clientes a lograr el negocio deseado.
resultados en el espacio del Contact Center aprovechando las funciones de Amazon Connect, Amazon Lex y GenAI.