IA generativa Y los grandes modelos de idiomas (LLM) están revolucionando a las organizaciones en diversos sectores para mejorar la experiencia del cliente, lo que tradicionalmente llevaría años para avanzar. Cada organización tiene datos almacenados en tiendas de datos, ya sea en premisas o en proveedores de nubes.
Puede adoptar la IA generativa y mejorar la experiencia del cliente al convertir sus datos existentes en un índice sobre el cual la IA generativa puede buscar. Cuando hace una pregunta a un LLM de código abierto, obtiene información pública disponible como respuesta. Aunque esto es útil, la IA generativa puede ayudarlo a comprender sus datos junto con el contexto adicional de LLMS. Esto se logra a través de la generación de recuperación aumentada (RAG).
Rag recupera datos de una base de conocimiento preexistente (sus datos), lo combina con el conocimiento de la LLM y genera respuestas con un lenguaje más humano. Sin embargo, para que la IA generativa comprenda sus datos, se requiere cierta cantidad de preparación de datos, lo que implica una gran curva de aprendizaje.
Amazon Aurora es una base de datos relacional compatible con MySQL y PostgreSQL construida para la nube. Aurora combina el rendimiento y la disponibilidad de las bases de datos empresariales tradicionales con la simplicidad y la rentabilidad de las bases de datos de código abierto.
En esta publicación, lo guiamos a través de cómo convertir sus datos de aurora existentes en un índice sin necesidad de preparación de datos para Amazon Kendra Para realizar la búsqueda de datos e implementar el trapo que combine sus datos junto con el conocimiento de LLM para producir respuestas precisas.
Descripción general de la solución
En esta solución, use sus datos existentes como fuente de datos (Aurora), cree un servicio de búsqueda inteligente conectando y sincronizando su fuente de datos a Amazon Kendra Search y realice una búsqueda generativa de datos de IA, que utiliza RAG para producir respuestas precisas combinando su datos junto con el conocimiento de la LLM. Para esta publicación, usamos el Claude de Anthrope en Roca madre de Amazon como nuestro LLM.
Los siguientes son los pasos de alto nivel para la solución:
El siguiente diagrama ilustra la arquitectura de la solución.
Requisitos previos
Para seguir esta publicación, se requieren los siguientes requisitos previos:
Crea un clúster de Aurora PostgreSQL
Ejecute los siguientes comandos AWS CLI para crear un clúster V2 sin servidor Aurora PostgreSQL:
La siguiente captura de pantalla muestra la instancia creada.
Ingerir datos a Aurora PostgreSQL-Compatible
Conéctese a la instancia de Aurora usando la herramienta PGADmin. Referirse a Conectarse a una instancia de DB que ejecuta el motor de la base de datos PostgreSQL Para más información. Para ingerir sus datos, complete los siguientes pasos:
- Ejecute las siguientes declaraciones de PostgreSQL en PGADmin para crear la base de datos, el esquema y la tabla:
- En su conexión PostgreRora de Pgadmin Aurora, navegue a Bases de datos, genai, Esquema, empleados, Mesas.
- Elija (haga clic con el botón derecho) Mesas y elegir Herramienta PSQL Para abrir una conexión de cliente PSQL.
- Coloque el archivo CSV en su ubicación PGADmin y ejecute el siguiente comando:
- Ejecute la siguiente consulta de PSQL para verificar el número de registros copiados:
Crear un índice de Amazon Kendra
El Índice de Amazon Kendra mantiene el contenido de sus documentos y está estructurado de una manera de hacer que los documentos sean buscando. Tiene tres tipos de índice:
- Índice generativo de edición empresarial de IA – Ofrece la mayor precisión para la operación de API de recuperación y para los casos de uso de trapo (recomendado)
- Índice de edición empresarial -Proporciona capacidades de búsqueda semántica y ofrece un servicio de alta disponibilidad que es adecuado para cargas de trabajo de producción
- Índice de edición de desarrollador – Proporciona capacidades de búsqueda semántica para que pueda probar sus casos de uso
Para crear un índice de Amazon Kendra, complete los siguientes pasos:
- En la consola de Amazon Kendra, elija Índices En el panel de navegación.
- Elegir Crear un índice.
- En el Especificar detalles del índice Página, proporcione la siguiente información:
- Para Nombre del índiceingrese un nombre (por ejemplo,
genai-kendra-index). - Para Papel de iamelegir Crear un nuevo rol (recomendado).
- Para Nombre de rolingrese un nombre de rol de IAM (por ejemplo,
genai-kendra). Su nombre de rol tendrá prefijoAmazonKendra-<region>-(Por ejemplo,AmazonKendra-us-east-2-genai-kendra).
- Para Nombre del índiceingrese un nombre (por ejemplo,
- Elegir Próximo.
- En el Agregar capacidad adicional Página, seleccione Edición de desarrollador (para esta demostración) y elija Próximo.
- En el Configurar el control de acceso al usuario Página, proporcione la siguiente información:
- Bajo Configuración de control de accesoseleccionar No.
- Bajo Expansión del grupo de usuariosseleccionar Ninguno.
- Elegir Próximo.
- En el Revisar y crear página, verificar los detalles y elegir Crear.
Puede tomar algún tiempo para que el índice cree. Verifique la lista de índices para ver el progreso de la creación de su índice. Cuando el estado del índice es ACTIVOsu índice está listo para usar.
Configurar el conector PostgreSQL de Amazon Kendra Aurora
Complete los siguientes pasos para configurar su conector de fuente de datos:
- En la consola de Amazon Kendra, elija Fuentes de datos En el panel de navegación.
- Elegir Agregar fuente de datos.
- Elegir Conector de postgresql aurora Como tipo de fuente de datos.
- En el Especificar detalles de la fuente de datos Página, proporcione la siguiente información:
- En el Definir acceso y seguridad página, debajo Fuenteproporcione la siguiente información:
- Bajo Autenticaciónsi ya tiene credenciales almacenadas en AWS Secrets Managerelige en el menú desplegable de lo contrario, elija Crear y agregar un nuevo secreto.
- En el Crear un secreto de AWS Secrets Manager ventana emergente, proporcione la siguiente información:
- Para Nombre secretoingrese un nombre (por ejemplo,
AmazonKendra-Aurora-PostgreSQL-genai-kendra-secret). - Para Nombre de usuario base de datosingrese el nombre del usuario de su base de datos.
- Para Contraseña¸ Ingrese la contraseña del usuario.
- Para Nombre secretoingrese un nombre (por ejemplo,
- Elegir Agregar secreto.
- Bajo Configurar VPC y grupo de seguridadproporcione la siguiente información:
- Para Nube privada virtualelija su nube privada virtual (VPC).
- Para Subredelija su subred.
- Para Grupos de seguridad de VPCelija el grupo de seguridad VPC para permitir el acceso a su fuente de datos.
- Bajo Papel de iam¸ Si tiene un rol existente, elija en el menú desplegable. De lo contrario, elija Crear un nuevo rol.
- En el Configurar configuraciones de sincronización página, debajo Alcance de sincronizaciónproporcione la siguiente información:
- Para Consulta SQLingrese la consulta SQL y los valores de la columna de la siguiente manera:
select * from employees.amazon_review. - Para Clave principalingrese la columna de clave principal (
pk). - Para Títuloingrese la columna de título que proporciona el nombre del título del documento dentro de la tabla de su base de datos (
reviews_title). - Para Cuerpoingrese a la columna del cuerpo en la que ocurrirá su búsqueda de Amazon Kendra (
reviews_text).
- Para Consulta SQLingrese la consulta SQL y los valores de la columna de la siguiente manera:
- Bajo Nodo de sincronizaciónseleccionar Sincronización completa Para convertir los datos completos de la tabla en un índice de búsqueda.
Después de que la sincronización se complete con éxito, su índice de Amazon Kendra contendrá los datos de la tabla Aurora PostgreSQL especificada. Luego puede usar este índice para aplicaciones inteligentes de búsqueda y trapo.
- Bajo Horario de ejecución de sincronizaciónelegir Ejecutar.
- Elegir Próximo.
- En el Establecer mapeos de campo página, deje la configuración predeterminada y elija Próximo.
- Revise su configuración y elija Agregar fuente de datos.
Su fuente de datos aparecerá en el Fuentes de datos página después de que la fuente de datos se haya creado con éxito.
Invocar la aplicación RAG
La sincronización del índice de Amazon Kendra puede llevar minutos a horas dependiendo del volumen de sus datos. Cuando la sincronización se completa sin error, está listo para desarrollar su solución RAG en su IDE preferido. Complete los siguientes pasos:
- Configure sus credenciales de AWS para permitir que Boto3 interactúe con los servicios de AWS. Puedes hacer esto configurando el
AWS_ACCESS_KEY_IDyAWS_SECRET_ACCESS_KEYVariables de entorno o utilizando el~/.aws/credentialsarchivo: - Importar langchain y los componentes necesarios:
- Cree una instancia del LLM (Claude de Anthrope):
- Cree su plantilla de aviso, que proporciona instrucciones para el LLM:
- Inicializar el
KendraRetrievercon su ID de índice de Amazon Kendra reemplazando elKendra_index_idque creaste anteriormente y el cliente de Amazon Kendra: - Combine Claude de Anthrope y el Amazon Kendra Retriever en una cadena de recuperación:
- Invoca la cadena con su propia consulta:
Limpiar
Para evitar incurrir en cargos futuros, elimine los recursos que creó como parte de esta publicación:
Conclusión
En esta publicación, discutimos cómo convertir sus datos de Aurora existentes en un índice de Amazon Kendra e implementar una solución basada en RAG para la búsqueda de datos. Esta solución reduce drásticamente la necesidad de preparación de datos para la búsqueda de Amazon Kendra. También aumenta la velocidad del desarrollo generativo de aplicaciones de IA al reducir la curva de aprendizaje detrás de la preparación de datos.
Pruebe la solución, y si tiene algún comentario o pregunta, déjelos en la sección de comentarios.
Sobre los autores
Aravind hariharaputran es consultor de datos del equipo de servicios profesionales en Amazon Web Services. Le apasiona datos y AIML en general con una amplia experiencia en la gestión de tecnologías de bases de datos. Ayuda a los clientes a transformar la base de datos y aplicaciones heredadas en plataformas de datos modernas y aplicaciones generativas de IA. Le gusta pasar tiempo con la familia y jugar al cricket.
Ivan Cui Es un líder de ciencia de datos con AWS Professional Services, donde ayuda a los clientes a construir e implementar soluciones utilizando ML y IA generativa en AWS. Ha trabajado con clientes en diversas industrias, incluidos software, finanzas, farmacéutica, atención médica, IoT y entretenimiento y medios de comunicación. En su tiempo libre, le gusta leer, pasar tiempo con su familia y viajar.