Las empresas enfrentan un desafío cada vez mayor: los clientes necesitan respuestas rápidas, pero los equipos de soporte están abrumados. La documentación de soporte, como los manuales de productos y los artículos de la base de conocimientos, normalmente requieren que los usuarios busquen en cientos de páginas, y los agentes de soporte suelen realizar entre 20 y 30 consultas de clientes por día para localizar información específica.
Esta publicación demuestra cómo resolver este desafío mediante la creación de un asistente de sitio web con tecnología de inteligencia artificial utilizando Amazon Bedrock y Amazon Bedrock Knowledge Bases. Esta solución está diseñada para beneficiar tanto a los equipos internos como a los clientes externos, y puede ofrecer los siguientes beneficios:
Respuestas instantáneas y relevantes para los clientes, que alivian la necesidad de buscar en la documentación. Un potente sistema de recuperación de conocimientos para los agentes de soporte, que reduce el tiempo de resolución. Soporte automatizado las 24 horas.
Descripción general de la solución
La solución utiliza recuperación-generación aumentada (RAG) para recuperar información relevante de una base de conocimientos y devolvérsela al usuario en función de su acceso. Consta de los siguientes componentes clave:
Bases de conocimientos de Amazon Bedrock: el contenido del sitio web de la empresa se rastrea y almacena en la base de conocimientos. Los documentos de un depósito de Amazon Simple Storage Service (Amazon S3), incluidos manuales y guías de solución de problemas, también se indexan y almacenan en la base de conocimientos. Con Amazon Bedrock Knowledge Bases, puede configurar múltiples fuentes de datos y utilizar las configuraciones de filtro para diferenciar entre información interna y externa. Esto ayuda a proteger los datos internos a través de controles de seguridad avanzados. LLM administrados por Amazon Bedrock: un modelo de lenguaje grande (LLM) de Amazon Bedrock genera respuestas impulsadas por inteligencia artificial a las preguntas de los usuarios. Arquitectura escalable sin servidor: la solución utiliza Amazon Elastic Container Service (Amazon ECS) para alojar la interfaz de usuario y una función AWS Lambda para manejar las solicitudes de los usuarios. Implementación automatizada de CI/CD: la solución utiliza el kit de desarrollo en la nube de AWS (AWS CDK) para manejar la implementación de integración y entrega continua (CI/CD).
El siguiente diagrama ilustra la arquitectura de esta solución.
El flujo de trabajo consta de los siguientes pasos:
Amazon Bedrock Knowledge Bases procesa los documentos cargados en Amazon S3 fragmentándolos y generando incrustaciones. Además, el rastreador web Amazon Bedrock accede a sitios web seleccionados para extraer e ingerir sus contenidos. La aplicación web se ejecuta como una aplicación ECS. Los usuarios internos y externos utilizan navegadores para acceder a la aplicación a través de Elastic Load Balancing (ELB). Los usuarios inician sesión en la aplicación utilizando sus credenciales de inicio de sesión registradas en un grupo de usuarios de Amazon Cognito. Cuando un usuario envía una pregunta, la aplicación invoca una función Lambda, que utiliza las API de Amazon Bedrock para recuperar la información relevante de la base de conocimientos. También proporciona los ID de fuentes de datos relevantes a Amazon Bedrock según el tipo de usuario (externo o interno), de modo que la base de conocimientos recupere solo la información disponible para ese tipo de usuario. Luego, la función Lambda invoca Amazon Nova Lite LLM para generar respuestas. El LLM aumenta la información de la base de conocimientos para generar una respuesta a la consulta del usuario, que la función Lambda devuelve y se muestra al usuario.
En las siguientes secciones, demostramos cómo rastrear y configurar el sitio web externo como base de conocimientos, y también cómo cargar documentación interna.
Requisitos previos
Debe tener lo siguiente implementado para implementar la solución en esta publicación:
Cree una base de conocimientos e ingiera datos del sitio web
El primer paso es crear una base de conocimientos para ingerir datos de un sitio web y documentos operativos de un depósito de S3. Complete los siguientes pasos para crear su base de conocimientos:
En la consola de Amazon Bedrock, elija Bases de conocimientos en Herramientas del generador en el panel de navegación. En el menú desplegable Crear, elija Base de conocimientos con almacén de vectores.
Para Nombre de la base de conocimientos, ingrese un nombre. Para Elegir una fuente de datos, seleccione Rastreador web. Elija Siguiente.
En Nombre de la fuente de datos, ingrese un nombre para su fuente de datos. Para las URL de origen, ingrese la página HTML del sitio web de destino para rastrear. Por ejemplo, utilizamos https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html. Para Rango de dominio del sitio web, seleccione Predeterminado como alcance de rastreo. También puede configurarlo para alojar solo dominios o subdominios si desea restringir el rastreo a un dominio o subdominio específico. Para el filtro de expresiones regulares de URL, puede configurar los patrones de URL para incluir o excluir URL específicas. Para este ejemplo, dejamos esta configuración en blanco.
Para la estrategia de fragmentación, puede configurar las opciones de análisis de contenido para personalizar la estrategia de fragmentación de datos. Para este ejemplo, lo dejamos como fragmentación predeterminada. Elija Siguiente.
Elija el modelo Amazon Titan Text Embeddings V2 y luego elija Aplicar.
Para el tipo de tienda Vector, seleccione Amazon OpenSearch Serverless y luego elija Siguiente.
Revise las configuraciones y elija Crear base de conocimientos.
Ahora ha creado una base de conocimientos con la fuente de datos configurada como el enlace al sitio web que proporcionó.
En la página de detalles de la base de conocimientos, seleccione su nueva fuente de datos y elija Sincronizar para rastrear el sitio web e ingerir los datos.
Configurar la fuente de datos de Amazon S3
Complete los siguientes pasos para configurar documentos de su depósito S3 como fuente de datos interna:
En la página de detalles de la base de conocimientos, elija Agregar en la sección Fuente de datos.
Especifique la fuente de datos como Amazon S3. Elija su depósito S3. Deje la estrategia de análisis como configuración predeterminada. Elija Siguiente. Revise las configuraciones y elija Agregar fuente de datos. En la sección Fuente de datos de la página de detalles de la base de conocimientos, seleccione su nueva fuente de datos y elija Sincronizar para indexar los datos de los documentos en el depósito de S3.
Subir documento interno
Para este ejemplo, cargamos un documento en la nueva fuente de datos del depósito S3. La siguiente captura de pantalla muestra un ejemplo de nuestro documento.
Complete los siguientes pasos para cargar el documento:
En la consola de Amazon S3, elija Buckets en el panel de navegación. Seleccione el depósito que creó y elija Cargar para cargar el documento.
En la consola de Amazon Bedrock, vaya a la base de conocimientos que creó. Elija la fuente de datos interna que creó y elija Sincronizar para sincronizar el documento cargado con el almacén de vectores.
Tenga en cuenta el ID de la base de conocimientos y los ID de la fuente de datos para las fuentes de datos externas e internas. Esta información se utiliza en el siguiente paso al implementar la infraestructura de la solución.
Implementar infraestructura de soluciones
Para implementar la infraestructura de la solución mediante AWS CDK, complete los siguientes pasos:
Descargue el código del repositorio de códigos. Vaya al directorio iac dentro del proyecto descargado:
cd ./soporte-cliente-ai/iac
Abra el archivo parámetros.json y actualice la base de conocimientos y los ID de la fuente de datos con los valores capturados en la sección anterior:
Siga las instrucciones de implementación definidas en el archivo customer-support-ai/README.md para configurar la infraestructura de la solución.
Cuando se completa la implementación, puede encontrar la URL del balanceador de carga de aplicaciones (ALB) y los detalles del usuario de demostración en el resultado de ejecución del script.
También puede abrir la consola de Amazon EC2 y elegir Load Balancers en el panel de navegación para ver el ALB.
En la página de detalles de ALB, copie el nombre DNS. Puede usarlo para acceder a la interfaz de usuario y probar la solución.
Enviar preguntas
Exploremos un ejemplo de soporte de servicio de Amazon S3. Esta solución admite diferentes clases de usuarios para ayudarles a resolver sus consultas mientras utilizan las bases de conocimiento de Amazon Bedrock para administrar fuentes de datos específicas (como contenido del sitio web, documentación y tickets de soporte) con controles de filtrado integrados que separan los documentos operativos internos de la información de acceso público. Por ejemplo, los usuarios internos pueden acceder tanto a guías operativas específicas de la empresa como a documentación pública, mientras que los usuarios externos están limitados únicamente al contenido disponible públicamente.
Abra la URL de DNS en el navegador. Ingrese las credenciales del usuario externo y elija Iniciar sesión.
Una vez que se haya autenticado correctamente, será redirigido a la página de inicio.
Elija Support AI Assistant en el panel de navegación para hacer preguntas relacionadas con Amazon S3. El asistente puede proporcionar respuestas relevantes según la información disponible en la guía Introducción a Amazon S3. Sin embargo, si un usuario externo hace una pregunta relacionada con información disponible solo para usuarios internos, el asistente de IA no proporcionará la información interna al usuario y responderá solo con información disponible para usuarios externos.
Cierra sesión y vuelve a iniciar sesión como usuario interno, y realiza las mismas consultas. El usuario interno puede acceder a la información relevante disponible en los documentos internos.
Limpiar
Si decide dejar de utilizar esta solución, complete los siguientes pasos para eliminar sus recursos asociados:
Vaya al directorio iac dentro del código del proyecto y ejecute el siguiente comando desde la terminal: Para ejecutar un script de limpieza, use el siguiente comando: Para realizar esta operación manualmente, use el siguiente comando: En la consola de Amazon Bedrock, elija Bases de conocimiento en Herramientas del generador en el panel de navegación. Elija la base de conocimientos que creó y luego elija Eliminar. Ingrese eliminar y elija Eliminar para confirmar.
En la consola del servicio OpenSearch, elija Colecciones en Sin servidor en el panel de navegación. Elija la colección creada durante el aprovisionamiento de la infraestructura y luego elija Eliminar. Ingrese confirmar y elija Eliminar para confirmar.
Conclusión
Esta publicación demostró cómo crear un asistente de sitio web con tecnología de inteligencia artificial para recuperar información rápidamente mediante la construcción de una base de conocimientos mediante el rastreo web y la carga de documentos. Puede utilizar el mismo enfoque para desarrollar otros prototipos y aplicaciones de IA generativa.
Si está interesado en los fundamentos de la IA generativa y cómo trabajar con FM, incluidas técnicas avanzadas de indicaciones, consulte el curso práctico IA generativa con LLM. Este curso bajo demanda de 3 semanas está dirigido a científicos e ingenieros de datos que desean aprender a crear aplicaciones de IA generativa con LLM. Es la buena base para empezar a construir con Amazon Bedrock. Regístrese para obtener más información sobre Amazon Bedrock.
Sobre los autores
Shashank Jain es arquitecto de aplicaciones en la nube en Amazon Web Services (AWS) y se especializa en soluciones de inteligencia artificial generativa, arquitectura de aplicaciones nativas de la nube y sostenibilidad. Trabaja con los clientes para diseñar e implementar aplicaciones seguras y escalables basadas en IA utilizando tecnologías sin servidor, prácticas modernas de DevSecOps, infraestructura como código y arquitecturas basadas en eventos que brindan valor comercial mensurable.
Jeff Li es arquitecto senior de aplicaciones en la nube del equipo de servicios profesionales de AWS. Le apasiona profundizar con los clientes para crear soluciones y modernizar aplicaciones que respalden las innovaciones comerciales. En su tiempo libre le gusta jugar tenis, escuchar música y leer.
Ranjith Kurumbaru Kandiyil es arquitecto de datos e IA/ML en Amazon Web Services (AWS) con sede en Toronto. Se especializa en colaborar con clientes para diseñar e implementar soluciones de IA/ML de vanguardia. Su enfoque actual radica en aprovechar las tecnologías de inteligencia artificial de última generación para resolver desafíos comerciales complejos.