En esta página se ofrece una descripción general de las funciones que ofrece Cloud SQL para PostgreSQL para ayudarte a crear aplicaciones de IA generativa. Para empezar a usar una aplicación de ejemplo, consulta Primeros pasos con Cloud SQL para aplicaciones de IA generativa.
La generación aumentada por recuperación (RAG) es una técnica para optimizar el resultado de un modelo de lenguaje extenso (LLM) haciendo referencia a una base de conocimientos autorizada antes de generar una respuesta. La RAG mejora las aplicaciones de IA generativa aumentando su precisión. Las bases de datos de Cloud SQL ofrecen funciones diseñadas para aplicaciones de IA generativa y RAG, tal como se explica en esta página.
Generar incrustaciones de vectores
Las inserciones de vectores son esenciales para RAG porque permiten una comprensión semántica y una búsqueda de similitudes eficiente. Estas incrustaciones son representaciones numéricas de texto, imágenes, audio y vídeo. Los modelos de incrustaciones generan las incrustaciones de vectores de forma que, si dos fragmentos de contenido son semánticamente similares, sus incrustaciones respectivas se encuentran cerca una de la otra en el espacio vectorial de incrustaciones.
Cloud SQL se integra con Vertex AI. Puedes usar los modelos que aloja Vertex AI para generar inserciones de vectores mediante consultas de SQL.
Cloud SQL amplía la sintaxis de PostgreSQL con una función de inserción para generar inserciones vectoriales de texto. Una vez que hayas generado estas inserciones, podrás almacenarlas en una base de datos de Cloud SQL sin necesidad de tener una base de datos de vectores independiente.
También puedes usar Cloud SQL para almacenar inserciones vectoriales que se generen fuera de Cloud SQL. Por ejemplo, puedes almacenar incrustaciones vectoriales generadas mediante modelos preentrenados en Model Garden de Vertex AI. Puedes usar estas inserciones de vectores como entradas para las funciones pgvector
en búsquedas semánticas y de similitud.
Almacenar, indexar y consultar incrustaciones de vectores con pgvector
Puedes almacenar, indexar y consultar inserciones vectoriales en Cloud SQL mediante la extensión pgvector
PostgreSQL.
Para obtener más información sobre cómo configurar esta extensión, consulta Configurar extensiones de PostgreSQL. Para obtener más información sobre cómo almacenar, indexar y consultar incrustaciones de vectores, consulta Almacenar una incrustación generada y Consultar e indexar incrustaciones con pgvector
.
Invocar predicciones online mediante consultas de SQL
Puedes invocar predicciones online mediante consultas de SQL con modelos almacenados en Vertex AI Model Garden.
Usar la integración de LangChain
Cloud SQL se integra con LangChain, un framework de orquestación de LLMs de código abierto, para simplificar el desarrollo de aplicaciones de IA generativa. Puedes usar los siguientes paquetes de LangChain:
- Cargadores de documentos: cargan y almacenan información de documentos.
- Almacenes de vectores: usa LangChain para habilitar la búsqueda semántica
- Mensajes de chat: habilita las cadenas para recordar conversaciones anteriores
Mejorar el rendimiento de la búsqueda vectorial
Para mejorar el rendimiento de una búsqueda vectorial, puedes usar lo siguiente:
- Caché de datos: usa una caché de datos integrada que aprovecha una unidad SSD local rápida para almacenar las páginas de datos que se leen con frecuencia. Puedes conseguir hasta tres veces más rendimiento de lectura que si lees desde un disco persistente.
Métricas de la caché de datos: optimiza las consultas en función de la eficacia con la que se usa la caché de datos en una búsqueda de vectores.
Cloud SQL proporciona las siguientes métricas en el explorador de métricas de Cloud Monitoring:
Métrica Descripción Etiqueta de métrica Caché de datos usada Uso de la caché de datos (en bytes) database/data_cache/bytes_used
Cuota de caché de datos Tamaño máximo de la caché de datos (en bytes) database/data_cache/quota
Número de resultados en caché de datos Número total de operaciones de lectura de aciertos de caché de datos de una instancia. database/postgresql/data_cache/hit_count
Número de fallos de caché de datos Número total de operaciones de lectura fallidas de la caché de datos de una instancia. database/postgresql/data_cache/miss_count
Proporción de resultados en caché de datos Relación entre las operaciones de lectura con acierto de caché de datos y las operaciones de lectura con fallo de caché de datos de una instancia.
database/postgresql/data_cache/hit_ratio
Estadísticas del sistema: proporcionan métricas del sistema, como el uso de la CPU, el uso del disco y el rendimiento, para ayudarte a monitorizar el estado de las instancias y solucionar problemas que afecten al rendimiento de tus aplicaciones de IA generativa. Para ver estas métricas, usa el panel de control Estadísticas del sistema de Cloud SQL.
Estadísticas de las consultas: detecta, diagnostica y evita problemas de rendimiento de las consultas. Esto resulta útil para mejorar el rendimiento de la búsqueda de vectores en tus aplicaciones de IA generativa.
Puedes usar el panel de control Información valiosa sobre las consultas de Cloud SQL para observar el rendimiento de las consultas principales y analizarlas mediante planes de consulta visuales. También puedes monitorizar el rendimiento a nivel de aplicación y rastrear el origen de una consulta problemática en la pila de la aplicación hasta la base de datos mediante SQLcommenter. Se trata de una biblioteca de código abierto de asignación relacional de objetos (ORM) con instrumentación automática.
Query Insights también puede ayudarte a integrarte con tus herramientas de monitorización de aplicaciones (APM) para solucionar problemas de consultas con herramientas que ya conoces.
Ventajas de usar Cloud SQL en aplicaciones de IA generativa
Usar Cloud SQL para crear aplicaciones de IA generativa ofrece lo siguiente:
- Usa PostgreSQL para crear aplicaciones de IA generativa. Cloud SQL para PostgreSQL admite
pgvector
y se integra con Vertex AI y LangChain. - Usa un servicio de confianza que tenga protección, seguridad y gestión de datos de nivel empresarial. Si usas Cloud SQL, disfrutarás de las siguientes ventajas:
- Un acuerdo de nivel de servicio de alta disponibilidad del 99,99% que incluye el mantenimiento
- Un servicio gestionado que te ofrece funciones como copias de seguridad automáticas, replicación, parches, cifrado y aumentos automáticos de la capacidad de almacenamiento
- Funciones de seguridad, gobernanza y cumplimiento
- Combínalos con datos operativos contextuales. Usa combinaciones y filtros en los datos operativos mientras usas incrustaciones de vectores para obtener respuestas contextuales, precisas y actualizadas en tus aplicaciones de IA generativa.
- Reduce las tareas repetitivas. Usa Cloud SQL como base de datos de vectores para reducir el esfuerzo operativo asociado a la exportación de datos a una base de datos de vectores independiente.
- Acceder a los modelos de IA generativa más recientes. Usa consultas de SQL para acceder a los modelos de IA más recientes alojados en Vertex AI.
Empezar a usar Cloud SQL para aplicaciones de IA generativa
Para empezar a crear aplicaciones de IA generativa, usa esta aplicación de ejemplo. La aplicación usa Cloud SQL, Vertex AI y Google Kubernetes Engine (GKE) o Cloud Run. Puedes usar la aplicación para crear una API de chatbot básica que haga lo siguiente:
- Integra GKE o Cloud Run con Cloud SQL, Vertex AI y
pgvector
. - Demuestra la conectividad a Cloud SQL mediante Private Service Connect en una nube privada virtual (VPC).
- Usa Terraform para configurar tu infraestructura
- Usa Python con
asyncpg
yFastAPI
- Permite configurar Cloud SQL y una aplicación que se ejecute en GKE o Cloud Run en proyectos Google Cloud independientes
La solución contiene lo siguiente:
- Plantillas de Terraform para configurar tu infraestructura con prácticas recomendadas de seguridad
- Aplicación de ejemplo de un chatbot basado en LLM que puedes desplegar en GKE o Cloud Run