Este repo fue creado en colaboración con Enrique Rodriguez
En nuestra publicación de blog anterior, "Elevando el soporte al cliente con un asistente de Whatsapp", exploramos cómo las tecnologías avanzadas como la IA Generativa y la Generación Aumentada por Recuperación (RAG) pueden revolucionar los modelos tradicionales de soporte al cliente en la industria de viajes. Hoy, nos gustaría presentar un enfoque alternativo que aprovecha el poder de Agents for Amazon Bedrock, una Amazon Aurora vectorizada y una base de conocimiento de PostgreSQL para Amazon Bedrock.
Esta arquitectura elimina la necesidad de una lógica compleja de gestión de conversaciones, ya que los agentes de Bedrock manejan el seguimiento de sesiones, mientras que la Base de Conocimiento para Amazon Bedrock utilizando Aurora PostgreSQL asegura respuestas altamente precisas y contextuales, y Amazon DynamoDB cumple un doble propósito: almacenar tanto la información de los pasajeros como los tickets de soporte.
Las características clave de la solución incluyen:
- Manejo inteligente de consultas utilizando la técnica RAG.
- Soporte personalizado basado en los datos individuales de los viajeros.
- Creación automática de tickets de soporte para problemas no resueltos.
- Capacidad de consultar y gestionar la base de datos de tickets de soporte.
Esta aplicación se construye en cuatro etapas utilizando infraestructura como código con AWS Cloud Development Kit (CDK) para python. En la primera etapa, se configura una base de datos vectorial de Amazon Aurora PostgreSQL. En la segunda etapa, se crea la Base de Conocimiento para Amazon Bedrock utilizando la base de datos establecida. La tercera etapa implica la creación de un agente de Amazon Bedrock. Y en la cuarta etapa, se despliega una aplicación de WhatsApp para proporcionar la interfaz de usuario del sistema.
✅ Nivel de AWS: Avanzado - 300
Requisitos previos:
- Conocimientos fundamentales de Python
-
Habilitar el acceso al modelo para los siguientes modelos:
- Amazon Titan Embeddings V2
- Modelos Anthropic Claude 3 (Haiku o Sonnet).
Opcional: Inicializar su cuenta/región si este es su primer proyecto CDK
💰 Costo para completar:
- Precios de Amazon Bedrock Nota: en este proyecto, utilizamos Amazon Titan Embeddings v2 y Anthropic Claude 3
- Precios de Amazon S3
- Precios de AWS Systems Manager
- Precios de Amazon Aurora Nota: Aquí utilizamos Aurora Serverless con 0.5 ACU
- Precios de Amazon Lambda
- Precios de Amazon DynamoDB
- Precios de Whatsapp
- Precios de Amazon ApiGateway
- Precios de Amazon Transcribe
🚨 Nota: Esta serie de pilas CDK debe implementarse dentro de la misma cuenta y región de AWS. Esto se debe a que cada pila está creada para almacenar información esencial en un AWS Systems Manager (SSM) Parameter Store secreto, que luego es recuperado por la pila en el siguiente paso del proceso de implementación.
Esto es lo que vas a construir:
-
Webhook de mensaje entrante:
El proceso comienza cuando un usuario envía una nota de voz/mensaje de texto a través de WhatsApp. El mensaje de voz/texto se recibe a través de Amazon API Gateway y es procesado por la función AWS Lambda.
Los detalles del mensaje se almacenan en una tabla de Amazon DynamoDB para el desacoplamiento y procesamiento.
-
Proceso de texto de audio:
Si hay un mensaje de voz, se almacena en un bucket de Amazon S3. Luego, Amazon Transcribe convierte el audio a texto, que se envía al asistente.
Si solo es un mensaje de texto, irá directamente a la entrada del asistente.
-
Respuesta del Asistente:
El Agente procesa la consulta y genera una respuesta, potencialmente accediendo a datos adicionales de la tabla DynamoDB o una base de conocimientos.
Dependiendo de la solicitud del usuario, se pueden desencadenar varias acciones, como crear tickets de soporte o recuperar información de pasajeros.
La respuesta final se envía de vuelta al usuario a través de WhatsApp.
¡Construyamos!
Parte 0: Clonar el repositorio
git clone https://github.com/build-on-aws/rag-postgresql-agent-bedrock
Parte 1: Construyendo una base de datos vectorial de Amazon Aurora PostgreSQL como Base de Conocimientos para Amazon Bedrock.
Para configurar una base de datos vectorial de Amazon Aurora PostgreSQL. Explica la importancia de las bases de datos vectoriales para implementar la Generación Aumentada por Recuperación (RAG). Se utiliza AWS Cloud Development Kit (CDK) para Python para configurar la infraestructura de la base de datos. Esto también incluye pasos detallados para preparar la base de datos, como instalar extensiones, crear esquemas y roles, y configurar tablas e índices utilizando Constructores Personalizados.
Parte 2: Construyendo una Base de Conocimientos para Amazon Bedrock utilizando Aurora PostgreSQL.
Se centra en crear una Base de Conocimientos para Amazon Bedrock, lo que implica configurar un bucket S3 como fuente de datos, configurar los roles y permisos de IAM necesarios, y almacenar información en AWS Systems Manager Parameter Store. La Base de Conocimientos procesa automáticamente datos de texto sin estructurar de PDFs, los convierte en fragmentos de texto, genera incrustaciones vectoriales y las almacena en una base de datos PostgreSQL. La guía proporciona instrucciones paso a paso para la configuración e implementación.
Parte 3: Construyendo un Agente para Amazon Bedrock para Buscar en la Base de Conocimientos y Administrar Datos de Amazon DynamoDB.
El proyecto demuestra cómo construir un agente impulsado por IA capaz de consultar y analizar datos almacenados en una base de datos PostgreSQL utilizando solicitudes en lenguaje natural.
Parte 4: Interacción Mejorada con el Usuario: Integrando un Asistente de WhatsApp con el Agente de Amazon Bedrock.
Esta es la parte final de una serie de cuatro partes sobre la creación de un Agente de Soporte de Viajes RAG avanzado con WhatsApp utilizando Amazon Bedrock Agent. El proyecto integra varios servicios de AWS, incluyendo API Gateway, Lambda, DynamoDB, S3 y Transcribe, para crear un flujo de trabajo para procesar y responder a los mensajes de los usuarios. La aplicación puede manejar mensajes de texto y voz, transcribir audio y aprovechar una base de conocimientos construida en Aurora PostgreSQL para la recuperación de información.
👾 Consejo: ¡Si no quieres usar WhatsApp, no hay problema! Puedes utilizar la siguiente aplicación JavaScript, que crea una interfaz de usuario que te permite utilizar los Agentes y Bases de Conocimiento de Amazon Bedrock disponibles en tu cuenta de AWS --> Building ReactJS Generative AI apps with Amazon Bedrock and AWS JavaScript SDK
Conclusión
Este mejorado Asistente de Viajes de WhatsApp demuestra el poder de los servicios integrados de IA y bases de datos de AWS. Al aprovechar las capacidades de agente y base de conocimientos de Amazon Bedrock, junto con Aurora PostgreSQL y DynamoDB, hemos creado una solución más optimizada, potente y mantenible.
La adición del sistema de tickets de soporte brinda una experiencia completa de servicio al cliente de principio a fin, permitiendo la escalada sin problemas de problemas complejos mientras se mantienen los beneficios de las interacciones iniciales impulsadas por IA.
Te animamos a construir sobre esta base, tal vez ampliando la base de conocimientos, cambiando las respuestas del agente o integrándote con servicios adicionales.
¡Gracias por acompañarnos en este viaje para revolucionar el soporte al cliente de viajes con las tecnologías de AWS!
Top comments (0)