El ejemplo de asistente GenAI de productividad de los empleados es un ejemplo de código innovador diseñado para elevar la eficiencia y eficacia de las tareas de escritura mediante la integración de tecnologías de inteligencia artificial. Diseñado para usuarios de AWS, este ejemplo de asistente utiliza Amazon Bedrock y modelos de IA generativa para automatizar la creación de plantillas iniciales, que también se pueden personalizar según sus propias necesidades. Los usuarios pueden ingresar texto e imágenes, beneficiándose de las capacidades multimodales de la IA de vanguardia como la familia Claude 3, que admite la interacción dinámica con múltiples tipos de datos.
El ejemplo del asistente GenAI de productividad de los empleados se basa en tecnologías sólidas sin servidor de AWS, como Lambda, API Gateway, DynamoDB y S3, lo que garantiza escalabilidad, alta disponibilidad y seguridad a través de Cognito. Estas tecnologías proporcionan una base que permite que el ejemplo del asistente GenAI de productividad de los empleados responda bajo demanda a las necesidades de los usuarios manteniendo estrictos estándares de seguridad. El núcleo de sus capacidades generativas se deriva de los potentes modelos de IA disponibles en Amazon Bedrock, que ayudan a ofrecer contenido personalizado y de alta calidad con rapidez.
El ejemplo del asistente GenAI de productividad de los empleados muestra sus funcionalidades a través de una serie de GIF interactivos, lo que facilita a los usuarios la comprensión y el uso de sus funciones:
Al proporcionar una interfaz optimizada y herramientas integrales, el ejemplo del asistente GenAI de productividad de los empleados no solo simplifica la generación de documentos complejos sino que también mejora la productividad y la creatividad del usuario. Este repositorio de GitHub sirve como guía para implementar esta solución en cuentas de AWS propiedad de los usuarios, lo que garantiza que cualquiera pueda configurar y comenzar a beneficiarse de las capacidades avanzadas de este asistente de escritura con tecnología de inteligencia artificial.
Patrones arquitectónicos y componentes reutilizables
Además de las funciones interactivas, el ejemplo del asistente GenAI de productividad de los empleados proporciona un patrón arquitectónico sólido para crear soluciones de IA generativa en AWS. Al aprovechar los servicios sin servidor de Amazon Bedrock y AWS, como Lambda, API Gateway y DynamoDB, el ejemplo demuestra un enfoque escalable y seguro para implementar aplicaciones de IA generativa. Este patrón de arquitectura se puede utilizar como base para crear varias soluciones de IA generativa adaptadas a diferentes casos de uso. Además, la solución incluye una interfaz de usuario reutilizable basada en componentes construida en el marco React, lo que permite a los desarrolladores ampliar y personalizar fácilmente la interfaz para satisfacer sus necesidades específicas. El ejemplo también muestra la implementación del soporte de transmisión mediante WebSockets, lo que permite respuestas en tiempo real tanto en interacciones basadas en chat como en solicitudes únicas, mejorando la experiencia del usuario y la capacidad de respuesta del asistente de IA generativa.
improve-employee-productivity-using-genai/
│
├── backend/ - Contains all backend related files.
│ ├── artifacts/ - Artifacts such as screenshots
│ ├── src/ - Source code for Lambda functions.
│ ├── utils/ - Utility scripts such as helper to create Cognito users
│ ├── layer/ - Code for Lambda layers.
│ └── template.yaml - Main SAM template for Infrastructure as Code (IaC) deployment.
│
└── frontend/ - Houses the frontend React application.
│ ├── src/ - Main folder for React code.
│ └── App.js - Entry point for the React application.
│ └── .env - Environment variables created on deployment (auto-generated).
│
├── deploy.sh - Single bash script for deploying both backend and frontend.
└── default_templates.json - Default templates that gets uploaded to DynamoDB at deployment for bootstrap.
Antes de comenzar con la implementación y el desarrollo del ejemplo del Asistente GenAI de productividad de los empleados, asegúrese de tener configurados los siguientes requisitos previos:
pip
instalado y funcionandoAsegúrese de que estén instalados y configurados correctamente antes de continuar con la implementación o desarrollo del ejemplo del Asistente GenAI de productividad para empleados.
️ Importante : antes de continuar con la implementación, asegúrese de haber completado todos los requisitos previos.
El ejemplo de implementación del asistente GenAI de productividad de los empleados implica la ejecución de un script bash que maneja la configuración tanto del backend como del frontend. A continuación se detallan los pasos que realiza el script:
Para implementar el ejemplo del Asistente GenAI de productividad de los empleados, utilice los siguientes comandos en su terminal, incluida la región de AWS como argumento obligatorio:
./deploy.sh --region=your-aws-region --email=your-email
./deploy.sh --backend --region=your-aws-region --email=your-email
./deploy.sh --frontend --region=your-aws-region --email=your-email
./deploy.sh --delete --region=your-aws-region --email=your-email
./deploy.sh --container --region=your-aws-region --email=your-email
Reemplace your-aws-region
con la región de AWS adecuada (p. ej., us-east-1
)
Asegúrese de ejecutar estos comandos desde la raíz del directorio del proyecto y reemplace your-aws-region
con la región de AWS real que desea utilizar.
Una vez que haya terminado de implementar, vaya a las instrucciones a continuación en Pasos posteriores a la implementación.
Para obtener algunos detalles sobre lo que hace el script, consulte a continuación:
--delete
, el script solicita confirmación para eliminar la pila de AWS especificada.--backend
) :sam build --template "$SAM_TEMPLATE" --parallel --cached
--container
./deploy.sh
se activará para ejecutar el SAM como: sam build --template "$SAM_TEMPLATE" --parallel --cached --use-container
--frontend
) :.env
en el directorio frontend con estas salidas.aws-exports.json
para la configuración de AWS.AWS CloudShell le permite tener un entorno Linux gratuito e instantáneo al que se puede acceder desde su consola de AWS. Para instalar la solución mediante AWS CloudShell, siga los pasos a continuación en orden.
Instalación de dependencias : primero, asegúrese de tener instaladas las herramientas y bibliotecas de desarrollo necesarias. Abra AWS CloudShell y ejecute los siguientes comandos:
# Install Development Tools
sudo yum groupinstall " Development Tools " -y &&
# Install necessary libraries
sudo yum install openssl-devel bzip2-devel libffi-devel zlib-devel xz-devel ncurses-devel readline-devel sqlite-devel -y
Instalación de Python 3.11 con PyEnv : AWS CloudShell no viene con Python 3.11, por lo que necesitaremos instalar PyEnv para luego instalar y configurar Python 3.11 como la versión predeterminada de Python en nuestro shell.
# Install PyEnv
git clone https://github.com/pyenv/pyenv.git ~ /.pyenv
# Set .bash_profile env
echo ' ' >> ~ /.bash_profile
echo ' # Pyenv Configuration ' >> ~ /.bash_profile
echo ' export PYENV_ROOT="$HOME/.pyenv" ' >> ~ /.bash_profile
echo ' export PATH="$PYENV_ROOT/bin:$PATH" ' >> ~ /.bash_profile
echo ' eval "$(pyenv init -)" ' >> ~ /.bash_profile
# Reinitialize your Shell
source ~ /.bash_profile
# Install Python 3.11
pyenv install 3.11
# Set Python 3.11 as default with PyEnv
pyenv global 3.11
Cree una nueva carpeta de trabajo en CloudShell : el directorio de inicio de AWS CloudShell tiene solo 1 GB de almacenamiento; necesitaremos usar el almacenamiento temporal para crear e implementar esta aplicación. Primero, creemos una carpeta en el directorio raíz y establezcamos el permiso de usuario adecuado.
# Folder creation
sudo mkdir /aws-samples &&
# Setting folder permissions
sudo chown cloudshell-user -R /aws-samples
Clonar repositorio e implementar la solución : ahora que tenemos una carpeta y todas las dependencias instaladas, veamos paso a paso cómo implementar la solución utilizando AWS CloudShel.
# Navigate to the newly created folder
cd /aws-samples
# Clone the repo in the /aws-samples folder
git clone https://github.com/aws-samples/improve-employee-productivity-using-genai.git
# Navigate to the git folder
cd improve-employee-productivity-using-genai/
# Before running the deployment command, set the maximum npm memory to 1024MB to avoid OOM error
export NODE_OPTIONS= " --max_old_space_size=1024 "
Implementar el backend de la solución : ahora que tenemos todas las dependencias para implementar nuestra aplicación, podemos implementar el backend de nuestra solución usando el siguiente comando. Estamos usando la opción de implementación para el backend y luego el frontend porque Cloudshell no tiene suficiente memoria para seguir implementando ambos en el mismo comando. Cambie la región y el correo electrónico antes de ejecutar el siguiente comando.
# Run the deployment command for the backend
./deploy.sh --backend --region=your-aws-region --email=your-email
Implementar el Frontend de la solución : Finalmente lo último que queda es implementar el Frontend de la solución. Utilice la misma región y correo electrónico que ejecutó en el comando Backend anterior.
# Run the deployment command for the frontend
./deploy.sh --frontend --region=your-aws-region --email=your-email
La implementación puede tardar entre 15 y 30 minutos. Tenga en cuenta que si no interactúa con AWS CloudShell durante más de 20 minutos, su entorno de CloudShell se eliminará. Se recomienda tener abierta una segunda pestaña de CloudShell y ejecutar algunos comandos una vez cada 10 minutos para evitar el apagado automático.
Nota : Si este comando falla debido a que CloudShell no tiene memoria, simplemente vuelva a ejecutar el comando
--frontend
y debería funcionar.
Una vez que se haya completado la implementación, se le mostrará la URL de CloudFront, el nombre de usuario y la contraseña temporal para acceder a la solución. Consulte la sección posterior a la implementación
La implementación del ejemplo del asistente GenAI de productividad de los empleados mediante AWS Cloud9 proporciona una configuración del entorno de desarrollo optimizada y coherente. Siga estos pasos detallados para configurar su entorno Cloud9 e implementar la aplicación de manera eficiente.
Nota: El volumen de EBS tiene un tamaño automático :
Abra la consola de AWS Cloud9 :
Crear un nuevo entorno :
GenAI-Productivity-Env
y haga clic en Siguiente paso .Configurar el entorno :
t3/t3.medium
o mayor para asegurarse de tener suficiente potencia informática.AWS System Manager (SSM)
como tipo de conexión. Revisar y crear :
Una vez que su entorno esté listo, debe prepararlo para implementar el ejemplo del asistente GenAI de productividad de los empleados.
Acceda a su entorno Cloud9 :
Clonar el repositorio del proyecto :
git clone https://github.com/aws-samples/improve-employee-productivity-using-genai
cd improve-employee-productivity-using-genai
Puede implementar tanto el backend como el frontend o manejarlos por separado.
Para implementar tanto el backend como el frontend (recomendado) :
./deploy.sh --container --region= < your-aws-region > --email= < your-email >
Reemplace con su región de AWS (por ejemplo, us-east-1) y con su dirección de correo electrónico real.
Para implementar solo el backend:
./deploy.sh --backend --container --region= < your-aws-region > --email= < your-email >
Reemplace con su región de AWS (por ejemplo, us-east-1) y con su dirección de correo electrónico real.
Para implementar solo el frontend:
./deploy.sh --frontend --region= < your-aws-region > --email= < your-email >
Reemplace con su región de AWS (por ejemplo, us-east-1) y con su dirección de correo electrónico real.
Una vez que se complete el script de implementación, vaya a la siguiente sección Pasos posteriores a la implementación
Después de implementar con éxito el Ejemplo de Asistente GenAI de Productividad de Empleados, dado que la implementación crea de forma predeterminada SÓLO el usuario Administrador en Cognito, siga estos pasos para crear usuarios de Cognito adicionales para darle acceso a su implementación de Ejemplo de Asistente GenAI de Productividad de Empleados:
Accede a la Aplicación :
Inicie sesión en la aplicación :
<your-email>
>) para iniciar sesión.Explora la aplicación :
Crear usuarios adicionales (opcional) :
EmployeeProductivityGenAIAssistantExample
.Asignar roles de usuario (opcional) :
? ¡Felicitaciones por implementar y configurar el ejemplo del Asistente GenAI de productividad de los empleados! Explora sus capacidades y disfruta de la experiencia.
.env
y aws-exports.json
en el directorio frontend. Explore las capacidades del ejemplo del asistente GenAI de productividad de los empleados con estas atractivas demostraciones. Cada característica se destaca a través de GIF interactivos que muestran el sistema en acción:
Usabilidad del patio de juegos :
Creación de plantilla :
Aplicación de plantilla en actividad :
Función de historial de actividad :
Chat interactivo con plantillas :
Entrada multimodal :
Estas herramientas están diseñadas para aumentar su productividad y creatividad al optimizar su interacción con modelos de IA en un entorno sin servidor.
El costo de ejecutar el ejemplo del Asistente GenAI de productividad de los empleados puede variar según sus patrones de uso y los modelos específicos de Amazon Bedrock que elija utilizar. Para proporcionar una estimación aproximada, hemos creado un enlace de estimación de costos que considera un escenario con 50 usuarios, cada uno de los cuales utiliza la herramienta 5 veces al día con un promedio de 500 tokens de entrada y 200 tokens de salida.
El costo mensual estimado se basa en los siguientes supuestos:
Los precios de Bedrock se pueden ver en la página de precios de AWS Bedrock. Los costos estimados para el escenario dado son los siguientes:
Modelo Claude 3 Haiku :
Modelo de soneto de Claude 3 :
Modelo Soneto Claude 3.5 :
Modelo Claude 3 Opus :
Notas : Si bien las estimaciones de costos se calculan utilizando un solo modelo, usted tiene la flexibilidad de cambiar entre modelos según sea necesario. Por ejemplo, si necesita un modelo más avanzado como Opus para una solicitud específica, solo se le cobrará por ese uso. Para la mayoría de las solicitudes, puede utilizar modelos con costos más optimizados como Haiku, que ayudarán a mantener el costo general de la herramienta más bajo y optimizado para sus necesidades.
Nota : La estimación no considera la capa gratuita de AWS para los servicios elegibles. Sus costos reales pueden ser más bajos si todavía se encuentra dentro de los límites de la capa gratuita. Tenga en cuenta también que los precios de los servicios de AWS pueden cambiar con el tiempo, por lo que los costos reales pueden variar de estas estimaciones.
Es importante tener en cuenta que esto es sólo una estimación y no representa el costo exacto. El propósito es proporcionar una idea de alto nivel del costo potencial según el escenario dado. El costo real variará según sus patrones de uso específicos y los modelos de Amazon Bedrock que elija utilizar.
Una de las grandes ventajas de la arquitectura en la nube y sin servidor es la capacidad de aumentar o reducir los recursos según la demanda. Como resultado, el costo de la solución aumentará o disminuirá en consecuencia, asegurando que solo pague por los recursos que consume.
Además, es posible que algunos componentes de la solución, como AWS Lambda, S3, CloudFront, DynamoDB y Amazon Cognito, no generen costos adicionales si aún se encuentra dentro de los límites de la capa gratuita de AWS.
Enlace al estimador de costos : https://calculator.aws/#/estimate?id=5fa739dd54db78d439bb602e17bd8af8a1d78f07
Nota : La calculadora de costos no incluye los cargos de Amazon Bedrock, ya que los modelos Claude aún no son compatibles con la calculadora.
Este proyecto tiene la licencia MIT; consulte el archivo de LICENCIA para obtener más detalles.
¡Agradecemos las contribuciones al ejemplo del asistente GenAI de productividad de los empleados! Si tiene sugerencias o desea informar problemas, no dude en abrir una solicitud de extracción o un problema.
Al implementar soluciones, es esencial seguir las mejores prácticas para garantizar la seguridad, la confiabilidad y la observabilidad. A continuación se presentan algunas recomendaciones, pero tenga en cuenta que esta lista no es exhaustiva y podría haber más para considerar.
Para mejorar la seguridad de los datos, considere habilitar el cifrado mediante una clave administrada por el cliente (CMK) almacenada en AWS Key Management Service (KMS) para diversos servicios. Esto proporciona una capa adicional de seguridad al permitirle controlar el acceso a las claves de cifrado.
La implementación de mecanismos sólidos de observabilidad y registro es crucial para el monitoreo, la resolución de problemas y la auditoría de seguridad.
AccessLogSetting
para registrar las solicitudes de acceso.Para las funciones Lambda que se ejecutan en una nube privada virtual (VPC), garantice la configuración adecuada de los puntos finales de la VPC para facilitar una comunicación segura y eficiente. Esto puede ayudar a mantener todas las llamadas internas en la VPC y evitar el uso de puntos de enlace públicos de AWS.
Al implementar estas mejores prácticas, puede mejorar significativamente la seguridad, confiabilidad y observabilidad de su entorno. Considere siempre las necesidades específicas de su aplicación e infraestructura para determinar las configuraciones más adecuadas.