Automatice las respuestas por correo electrónico de preguntas y respuestas con las bases de conocimientos de Amazon Bedrock

El correo electrónico sigue siendo un canal de comunicación vital para los clientes empresariales, especialmente en RRHH, donde responder a las consultas puede consumir recursos de personal y provocar retrasos. El amplio conocimiento requerido puede hacer que responder manualmente a las consultas por correo electrónico sea abrumador. En el futuro, la alta automatización desempeñará un papel crucial en este ámbito.

Usando IA generativa permite a las empresas mejorar la precisión y la eficiencia en la gestión y automatización del correo electrónico. Esta tecnología permite respuestas automatizadas, y solo los casos complejos requieren revisión manual por parte de un humano, lo que agiliza las operaciones y mejora la productividad general.

La combinación de recuperación de generación aumentada (RAG) y bases de conocimiento mejora la precisión de la respuesta automatizada. La combinación de modelos basados ​​en recuperación y generación en RAG permite acceder a bases de datos y generar respuestas precisas y contextualmente relevantes. El acceso a información confiable desde una base de conocimientos integral ayuda al sistema a brindar mejores respuestas. Este enfoque híbrido garantiza que las respuestas automáticas no solo sean contextualmente relevantes sino también objetivamente correctas, lo que mejora la confiabilidad y la confiabilidad de la comunicación.

En esta publicación, ilustramos la automatización de las respuestas a consultas por correo electrónico mediante el uso Bases de conocimiento de Amazon Bedrock y Servicio de correo electrónico sencillo de Amazon (Amazon SES), ambos servicios totalmente gestionados. Al vincular las consultas de los usuarios con información relevante del dominio de la empresa, Amazon Bedrock Knowledge Bases ofrece respuestas personalizadas. Las bases de conocimiento de Amazon Bedrock pueden lograr una mayor precisión y relevancia de la respuesta mediante la integración de modelos básicos (FM) con fuentes de datos internas de la empresa para RAG. Amazon SES es un servicio de correo electrónico que proporciona una forma sencilla de enviar y recibir correo electrónico utilizando sus propios dominios y direcciones de correo electrónico.

Recuperación Generación Aumentada

RAG es un enfoque que integra la recuperación de información en el proceso de generación del lenguaje natural. Implica dos flujos de trabajo clave: la ingesta de datos y la generación de texto. El flujo de trabajo de ingesta de datos crea incrustaciones semánticas para documentos y preguntas, almacenando incrustaciones de documentos en una base de datos vectorial. Al comparar la similitud del vector con la incrustación de la pregunta, el flujo de trabajo de generación de texto selecciona los fragmentos de documento más relevantes para mejorar el mensaje. La información obtenida permite al modelo generar respuestas más informadas y precisas.

Bases de conocimiento de Amazon Bedrock

Para los flujos de trabajo RAG, Amazon Bedrock ofrece bases de conocimiento administradas, que son bases de datos vectoriales que almacenan datos no estructurados de forma semántica. Este servicio administrado simplifica la implementación y el escalado, lo que permite a los desarrolladores concentrarse en crear aplicaciones RAG sin preocuparse por la administración de la infraestructura. Para obtener más información sobre RAG y las bases de conocimientos de Amazon Bedrock, consulte Conecte los modelos básicos a las fuentes de datos de su empresa con agentes para Amazon Bedrock.

Descripción general de la solución

La solución presentada en esta publicación responde automáticamente a las consultas por correo electrónico utilizando la siguiente arquitectura de solución. Las funciones principales son mejorar la base de conocimientos de soporte de RAG con documentos específicos del dominio y automatizar las respuestas por correo electrónico.

El flujo de trabajo para completar la base de conocimientos consta de los siguientes pasos, como se indica en el diagrama de arquitectura:

  1. El usuario carga información específica de la empresa y del dominio, como manuales de políticas, a un Almacenamiento sencillo de Amazon (Amazon S3) cubo.
  2. Este depósito se designa como fuente de datos de la base de conocimientos.
  3. Amazon S3 invoca un AWS Lambda función para sincronizar la fuente de datos con la base de conocimientos.
  4. La función Lambda inicia la ingesta de datos llamando al StartIngestionJob Función API. La base de conocimientos divide los documentos de la fuente de datos en partes manejables para una recuperación eficiente. La base de conocimientos está configurada para utilizar Amazon OpenSearch sin servidor como su almacén de vectores y un Titán Amazonas modelo de texto de incrustaciones en Amazon Bedrock para crear las incrustaciones. Durante este paso, los fragmentos se convierten en incrustaciones y se almacenan en un índice vectorial en el almacén de vectores OpenSearch Serverless para las bases de conocimiento de Amazon Bedrock, al mismo tiempo que se realiza un seguimiento del documento original.

El flujo de trabajo para automatizar las respuestas de correo electrónico utilizando IA generativa con la base de conocimientos incluye los siguientes pasos:

  1. Un cliente envía una consulta por correo electrónico en lenguaje natural a una dirección configurada dentro de su dominio, como info@example.com.
  2. Amazon SES recibe el correo electrónico y envía todo el contenido del correo electrónico a un depósito de S3 con el identificador de correo electrónico único como clave de objeto.
  3. Un Puente de eventos de Amazon La regla se invoca al recibir el correo electrónico en el depósito de S3 e inicia una Funciones de paso de AWS máquina de estado para coordinar la generación y el envío de la respuesta por correo electrónico.
  4. Una función Lambda recupera el contenido del correo electrónico de Amazon S3.
  5. El identificador de correo electrónico y la marca de tiempo recibida se registran en un AmazonDynamoDB mesa. Puede utilizar la tabla de DynamoDB para monitorear y analizar las respuestas de correo electrónico que se generan.
  6. Al utilizar el cuerpo de la consulta de correo electrónico, la función Lambda crea una consulta rápida e invoca Amazon Bedrock. RetrieveAndGenerate Función API para generar una respuesta.
  7. Amazon Bedrock Knowledge Bases utiliza el modelo de incrustaciones de Amazon Titan para convertir la consulta rápida en una incrustación vectorial y luego busca fragmentos que sean semánticamente similares. Luego, el mensaje se aumenta con los fragmentos que se recuperan del almacén de vectores. Luego enviamos el mensaje junto con el contexto adicional a un modelo de lenguaje grande (LLM) para generar respuestas. En esta solución utilizamos Claude Soneto 3.5 de Anthropic en Amazon Bedrock como nuestro LLM para generar respuestas de los usuarios utilizando contexto adicional. Claude Sonnet 3.5 de Anthropic es rápido, asequible y versátil, capaz de manejar diversas tareas como diálogo informal, análisis de texto, resúmenes y respuesta a preguntas sobre documentos.
  8. Una función Lambda construye una respuesta de correo electrónico a partir de la respuesta generada y transmite la respuesta de correo electrónico mediante Amazon SES al cliente. La información de seguimiento y disposición del correo electrónico se actualiza en la tabla de DynamoDB.
  9. Cuando no hay una respuesta de correo electrónico automatizada, una función de Lambda reenvía el correo electrónico original a un equipo de soporte interno para que lo revise y responda al cliente. Actualiza la información de disposición del correo electrónico en la tabla de DynamoDB.

Requisitos previos

Para configurar esta solución, debe tener los siguientes requisitos previos:

  • Una máquina local o máquina virtual (VM) en la que pueda instalar y ejecutar Interfaz de línea de comandos de AWS (AWS CLI).
  • Un entorno local preparado para desplegar la Kit de desarrollo de la nube de AWS (AWS CDK) como se documenta en Introducción a AWS CDK. Puedes iniciar el entorno con cdk bootstrap aws://{ACCOUNT_NUMBER}/{REGION}.
  • Un nombre de dominio válido con derechos de configuración sobre él. Si tiene un nombre de dominio registrado en Ruta Amazónica 53 y administrado en esta misma cuenta, AWS CDK configurará Amazon SES por usted. Si su dominio se administra en otro lugar, serán necesarios algunos pasos manuales (como se detalla más adelante en esta publicación).
  • Modelos de Amazon Bedrock habilitados para incrustación y consulta. Para obtener más información, consulte Acceda a los modelos de cimentación de Amazon Bedrock. En la configuración predeterminada, es necesario habilitar los siguientes modelos:
    • Incrustaciones de texto de Amazon Titan V2
    • Soneto de Claude 3.5 de Anthropic

Implementar la solución

Para implementar la solución, complete los siguientes pasos:

  1. Configure una identidad de dominio SES para permitir que Amazon SES envíe y reciba mensajes.
    Si desea recibir una dirección de correo electrónico para un dominio administrado en Route 53, la configurará automáticamente si proporciona la ROUTE53_HOSTED_ZONE variable de contexto. Si administra su dominio en una cuenta diferente o en un registrador además de Route 53, consulte Creación y verificación de identidades en Amazon SES para verificar manualmente la identidad de su dominio y Publicación de un registro MX para la recepción de correo electrónico de Amazon SES para agregar manualmente el registro MX requerido para que Amazon SES reciba correo electrónico para su dominio.
  2. Clona el repositorio y navega hasta el directorio raíz:
    git clone https://github.com/aws-samples/automated-emails-for-bedrock-knowledgebases.git && cd automated-emails-for-bedrock-knowledgebases

  3. Instalar dependencias:
    npm install
  4. Implemente la aplicación AWS CDK, reemplazando {EMAIL_SOURCE} con la dirección de correo electrónico que recibirá consultas, {EMAIL_REVIEW_DEST} con la dirección de correo electrónico para revisión interna de mensajes que no responden automáticamente, y {HOSTED_ZONE_NAME} con tu nombre de dominio:
    cdk deploy 
    --context emailSource={EMAIL_SOURCE} 
    --context emailReviewDest={EMAIL_REVIEW_DEST} 
    --context route53HostedZone {HOSTED_ZONE_NAME}

En este punto, ha configurado Amazon SES con una identidad de dominio verificada en modo sandbox. Ahora puede enviar correo electrónico a una dirección en ese dominio. Si necesita enviar correo electrónico a usuarios con un nombre de dominio diferente, debe solicitar acceso a producción.

Cargar documentos de dominio en Amazon S3

Ahora que tiene una base de conocimientos en funcionamiento, debe completar su almacén de vectores con los datos sin procesar que desea consultar. Para hacerlo, cargue sus datos de texto sin formato en el depósito de S3 que actúa como fuente de datos de la base de conocimientos:

  1. Localice el nombre del depósito en la salida de AWS CDK (KnowledgeBaseSourceBucketArn/Name).
  2. Cargue sus archivos de texto, ya sea a través de la consola de Amazon S3 o la CLI de AWS.

Si está probando esta solución, le recomendamos utilizar los documentos que aparecen a continuación manual de recursos humanos de código abierto. Cargue los archivos en las carpetas de rebajas o PDF. Su base de conocimientos sincronizará automáticamente esos archivos con la base de datos de vectores.

Prueba la solución

Para probar la solución, envíe un correo electrónico a la dirección definida en el parámetro de contexto “sourceEmail”. Si optó por cargar los documentos de recursos humanos de muestra, puede utilizar las siguientes preguntas de ejemplo:

  • “¿Cuántos días de PTO tengo?”
  • “¿A quién debo denunciar una infracción de derechos humanos?”

Limpiar

La implementación de la solución generará cargos. Para limpiar recursos, ejecute el siguiente comando desde la carpeta del proyecto:

Conclusión

En esta publicación, analizamos el papel esencial del correo electrónico como canal de comunicación para los usuarios empresariales y los desafíos de las respuestas manuales por correo electrónico. Nuestra descripción describió el uso de una arquitectura RAG y bases de conocimiento de Amazon Bedrock para automatizar las respuestas de correo electrónico, lo que resultó en una mejor priorización de recursos humanos y mejores experiencias de usuario. Por último, creamos una arquitectura de solución y un código de muestra en un repositorio de GitHub para generar y enviar automáticamente respuestas contextuales por correo electrónico utilizando una base de conocimientos.

Para obtener más información, consulte la Guía del usuario de Amazon Bedrock y Guía para desarrolladores de Amazon SES.


Acerca de los autores

Darrin Weber es arquitecto senior de soluciones en AWS y ayuda a los clientes a realizar su viaje a la nube con soluciones de AWS seguras, escalables e innovadoras. Aporta más de 25 años de experiencia en arquitectura, diseño y desarrollo de aplicaciones, transformación digital e Internet de las cosas. Cuando Darrin no está transformando y optimizando negocios con soluciones innovadoras en la nube, está haciendo caminatas o jugando al pickleball.

Marc Lüscher es arquitecto senior de soluciones en AWS y ayuda a los clientes empresariales a tener éxito, centrándose principalmente en la detección de amenazas, la respuesta a incidentes y la protección de datos. Su experiencia es en redes, seguridad y observabilidad. Anteriormente, trabajó en puestos prácticos de arquitectura técnica y seguridad dentro del sector de la salud como cliente de AWS. Fuera del trabajo, Marc disfruta de sus 3 perros, 4 gatos y más de 20 gallinas, y practica sus habilidades en ebanistería y carpintería.

Matt Richards es arquitecto senior de soluciones en AWS y ayuda a clientes del sector minorista. Habiendo sido cliente de AWS con experiencia en ingeniería de software y arquitectura de soluciones, ahora se enfoca en ayudar a otros clientes en sus procesos de modernización de aplicaciones y transformación digital. Fuera del trabajo, Matt siente pasión por la música, el canto y la batería en varios grupos.