Bases de conocimiento de Amazon Bedrock Ofrece una función de generación de recuperación (RAG) de recuperación totalmente administrada que conecta modelos de idiomas grandes (LLM) con fuentes de datos internas. Esta característica mejora las salidas del Modelo de Fundación (FM) con información contextual de datos privados, lo que hace que las respuestas sean más relevantes y precisas.
En AWS re: Invent 2024, nosotros anunciado Amazon Bedrock Bases Bases Soporte para consultas de lenguaje natural para recuperar datos estructurados de Amazon Redshift y Amazon Sagemaker Lakehouse. Esta característica proporciona un flujo de trabajo administrado para la construcción IA generativa Aplicaciones que acceden e incorporan información de fuentes de datos estructuradas y no estructuradas. A través del procesamiento del lenguaje natural, las bases de conocimiento de la roca madre de Amazon transforman las consultas del lenguaje natural en consultas SQL, para que los usuarios puedan recuperar datos directamente de fuentes compatibles sin comprender la estructura de la base de datos o la sintaxis SQL.
En esta publicación, discutimos cómo hacer tu Amazon Aurora PostgreSQL Compatible Edition Datos disponibles para consultas de lenguaje natural a través de las bases de conocimiento de la roca madre de Amazon mientras mantienen la frescura de los datos.
Recuperación de datos estructurados en bases de conocimiento de roca madre de Amazon y Amazon Redshift Zero-ETL
La recuperación de datos estructurados en las bases de conocimiento de Amazon Bedrock permite interacciones del lenguaje natural con su base de datos al convertir las consultas de los usuarios en declaraciones SQL. Cuando conecta una fuente de datos compatible como Amazon Redshift, las bases de conocimiento de la roca madre de Amazon analizan el esquema de su base de datos, las relaciones de tabla, el motor de consultas y las consultas históricas para comprender el contexto y la estructura de su información. Esta comprensión permite que el servicio genere consultas SQL precisas a partir de preguntas de lenguaje natural.
Al momento de escribir, las bases de conocimiento de Amazon Bedrock admiten la recuperación de datos estructurados directamente de Amazon Redshift y Sagemaker Lakehouse. Aunque actualmente no está disponible el soporte directo para Aurora PostgreSQL-Compatible, puede usar la integración cero-ETL entre Aurora PostgreSQL-Compatible y Amazon RedShift para que sus datos sean accesibles para la recuperación de datos estructurados de Bases Bedrock Bases estructurados. Cero-ETL La integración replica automáticamente sus tablas Aurora PostgreSQL al desplazamiento al rojo de Amazon en tiempo real, aliviando la necesidad de extractos complejos, transformación y tuberías de carga (ETL) o procesos de movimiento de datos.
Este patrón arquitectónico es particularmente valioso para las organizaciones que buscan permitir la consulta del lenguaje natural de sus datos de aplicación estructurados almacenados en Amazon Aurora tablas de base de datos. Al combinar la integración de cero ETL con las bases de conocimiento de la roca madre de Amazon, puede crear aplicaciones poderosas como asistentes de IA que usan LLM para proporcionar respuestas del lenguaje natural en función de sus datos operativos.
Descripción general de la solución
El siguiente diagrama ilustra la arquitectura que implementaremos para conectar las bases de conocimiento de Aurora PostgreSQL a Amazon Bedrock utilizando cero-ETL.
El flujo de trabajo consta de los siguientes pasos:
- Los datos se almacenan en Aurora PostgreSQL-Compatible dentro de la subred privada. Utilizamos un host Bastion para conectarse de forma segura a la base de datos desde la subred pública.
- Utilizando la integración cero-ETL, estos datos están disponibles en Amazon Redshift, también ubicado en la subred privada.
- Amazon Bedrock Knowledge Bases utiliza Amazon RedShift como su fuente de datos estructurada.
- Los usuarios pueden interactuar con las bases de conocimiento de Amazon Bedrock utilizando el Consola de gestión de AWS o un cliente AWS SDK, que envía consultas de lenguaje natural. Estas consultas son procesadas por las bases de conocimiento de Amazon Bedrock para recuperar información almacenada en Amazon Redshift (obtenida de Aurora).
Requisitos previos
Asegúrese de iniciar sesión con un papel de usuario con acceso para crear una base de datos Aurora, ejecutar DDL (crear, alterar, soltar, renombrar) y declaraciones de DML (insertar, actualizar, eliminar), crear una base de datos de desplazamiento rojo, configurar la integración cero-ETL y crear una base de conocimiento de Amazon Bedrock.
Configurar la base de datos Aurora PostgreSQL
En esta sección, pasamos a través de la creación y configuración de una base de datos Aurora PostgreSQL con un esquema de muestra para nuestra demostración. Creamos tres tablas interconectadas: products, customersy orders.
Provisar la base de datos
Comencemos configurando nuestro entorno de base de datos. Cree un nuevo clúster de base de datos Aurora PostgreSQL y inicie un Nube de cómputo elástica de Amazon (Amazon EC2) que servirá como nuestro punto de acceso para administrar la base de datos. La instancia de EC2 hará que sea sencillo crear tablas y administrar datos a lo largo de esta publicación.
La siguiente captura de pantalla muestra los detalles de nuestro clúster de base de datos y la instancia de EC2.
Para obtener instrucciones para configurar su base de datos, consulte Crear y conectarse a un clúster de Aurora PostgreSQL DB.
Crea el esquema de la base de datos
Después de conectarse a su base de datos utilizando SSH en su instancia de EC2 (descrita en Crear y conectarse a un clúster de Aurora PostgreSQL DB), es hora de crear su estructura de datos. Usamos las siguientes declaraciones DDL para crear tres tablas:
Uplopar las tablas con datos
Después de crear las tablas, puede llenarlas con datos de muestra. Al insertar datos en el orders Tabla, recuerde mantener la integridad referencial verificando lo siguiente:
- El
product_idexiste en elproductmesa - El
customer_idexiste en elcustomermesa
Usamos el siguiente código de ejemplo para llenar las tablas:
Asegúrese de mantener la integridad referencial al poblar el orders Tabla para evitar violaciones de restricciones de clave extranjera.
También puede usar ejemplos similares para construir su esquema y completar datos para esto.
Configure el clúster de desplazamiento rojo y configure cero-ETL
Ahora que ha configurado su base de datos Aurora PostgreSQL, puede establecer la integración cero-ETL con Amazon Redshift. Esta integración sincroniza automáticamente sus datos entre Aurora PostgreSQL-Compatible y Amazon RedShift.
Configurar Amazon Redshift
Primero, cree un Amazon Redshift Server sin servidor Grupo de trabajo y espacio de nombres. Para obtener instrucciones, ver Creación de un almacén de datos con Amazon Redshift Serverless.
Crear una integración de ETL cero
El proceso de integración de ETL cero implica dos pasos principales:
- Crear la integración de cero-ETL Desde su base de datos Aurora PostgreSQL hasta RedShift Serverless.
- Después de establecer la integración en el lado de Aurora, Cree la base de datos de mapeo correspondiente en Amazon Redshift. Este paso es crucial para facilitar la sincronización de datos adecuada entre los dos servicios.
La siguiente captura de pantalla muestra nuestros detalles de integración cero-ETL.
Verificar la integración
Después de completar la integración, puede verificar su éxito a través de varias comprobaciones.
En primer lugar, puede verificar los detalles de integración de ETL cero en la consola de desplazamiento rojo de Amazon. Deberías ver un Activo Estado para su integración, junto con la información de origen y destino, como se muestra en la siguiente captura de pantalla.
Además, puede usar el Editor de consultas de cambio rojo v2 Para verificar que sus datos se hayan poblado con éxito. Una consulta simple como SELECT * FROM customer; Debe devolver los datos sincronizados de su base de datos Aurora PostgreSQL, como se muestra en la siguiente captura de pantalla.
Configure la base de conocimiento de la roca madre de Amazon con datos estructurados
El paso final es crear una base de conocimiento de Amazon Bedrock que permita la consulta del lenguaje natural de nuestros datos.
Crea la base de conocimiento de Amazon Bedrock
Cree una nueva base de conocimiento de Amazon Bedrock con la opción de datos estructurados. Para obtener instrucciones, ver Construir una base de conocimiento conectándose a un almacén de datos estructurado. Luego debe sincronizar el motor de consulta para habilitar el acceso a los datos.
Configurar permisos de acceso a datos
Antes de que el proceso de sincronización pueda tener éxito, debe otorgar los permisos apropiados a las bases de conocimiento de Amazon Bedrock Gestión de identidad y acceso de AWS (Iam) papel. Esto implica ejecutar GRANT SELECT Comandos para cada tabla en su base de datos de desplazamiento rojo.
Ejecute el siguiente comando en el editor de consultas Redshift V2 para cada tabla:GRANT SELECT ON <table_name> TO "IAMR:<KB Role name>";Por ejemplo:GRANT SELECT ON customer TO "IAMR:AmazonBedrockExecutionRoleForKnowledgeBase_ej0f0";
Para las configuraciones de producción, la integración de la identidad del usuario final en el flujo de acceso a datos requiere la federación de identidad. Referirse a Documentación de AWS sobre el acceso a la base de datos estructurada para el modelo de acceso basado en roles. Para federaciones de identidades de clientes web, Amazon Cognito o Federación Saml con Servicio de token de seguridad de AWS (AWS STS) podría ser necesaria dependiendo de su arquitectura.
Verificar la configuración
Después de completar la configuración, su base de conocimiento debe mostrar los siguientes detalles:
- Estatus Disponible
- Consulta el motor sincronizado con éxito con Amazon RedShift
- COMPLETO Estado para la sincronización de la base de datos
Ahora puede comenzar a consultar sus datos utilizando el lenguaje natural.
Ejemplo de consultas de lenguaje natural
Ahora que ha configurado su base de conocimiento de Amazon Bedrock, puede comenzar a probar sus capacidades ejecutando consultas de lenguaje natural contra sus datos estructurados. Los datos estructurados de Amazon Bedrock Bases traducen las preguntas simples en inglés en SQL y utiliza FMS para generar respuestas legibles por humanos.
Puede probar su base de conocimiento de Amazon Bedrock de dos maneras:
- Consola de roca en Amazon – En la consola de rock de Amazon, elija Bases de conocimiento En el panel de navegación y seleccione su base de conocimiento configurada. Abrir el Prueba pestaña para interactuar con sus datos.
- AWS SDK o API – Use el AWS SDK (por ejemplo, Boto3 de Python) o llamar directamente al API de recuperación de género Para enviar consultas mediante programación.
En esta sección, ilustramos la experiencia de la consola. En la consola de roca madre de Amazon, puede interactuar con su base de conocimiento de Amazon Bedrock en dos modos:
- Generar consultas SQL – Esta opción le muestra la consulta SQL en bruto que se genera a partir de su pregunta de lenguaje natural
- Generación de recuperación y respuesta – Esto proporciona una respuesta del lenguaje natural usando un LLM
La siguiente tabla contiene algunos ejemplos de consultas y sus respectivas generación de respuestas SQL y modelo.
| Consulta del lenguaje natural | Generar el resultado de la API SQL | Generación de recuperación y respuesta | Modelo utilizado para la generación de respuesta |
How many customers do we have? |
We currently have 11 unique customers. |
Amazon Nova Lite | |
Which all customers have purchased the most products? |
Based on the data, the customers who have purchased |
Amazon Nova Lite | |
Who all have purchased more than one number of the most expensive product? |
The customers who have purchased more than one number of the |
Amazon Nova Micro |
Limpiar
Cuando haya terminado de usar esta solución, limpie los recursos que creó para evitar cargos continuos.
Conclusión
En esta publicación, demostramos cómo habilitar la consulta del lenguaje natural de los datos de Aurora PostgreSQL utilizando bases de conocimiento de roca madre de Amazon a través de la integración cero-ETL con el desplazamiento rojo de Amazon. Mostramos cómo configurar la base de datos, configurar la integración de ETL cero y establecer la conexión de la base de conocimiento para el acceso a los datos sin problemas. Aunque esta solución proporciona una forma efectiva de interactuar con sus datos utilizando el lenguaje natural, debe considerar los costos de almacenamiento adicionales en el desplazamiento rojo de Amazon al implementar esta arquitectura para su caso de uso.
Pruebe esta solución por usted mismo y comparta sus comentarios en los comentarios.
Sobre los autores
Girish B es un arquitecto de soluciones senior en AWS India Pvt Ltd con sede en Bangalore. Girish trabaja con muchos clientes de ISV para diseñar y arquitectando soluciones innovadoras en AWS
Dani Mitchell es un arquitecto generativo de soluciones especialistas en IA en AWS. Está enfocado en ayudar a acelerar las empresas en todo el mundo en sus viajes generativos de IA con el rock de Amazon.