En esta página, se describen algunos casos de uso para compilar aplicaciones con tecnología de LLM a través de LlamaIndex integrado con Cloud SQL para PostgreSQL. Se proporcionan vínculos a notebooks en GitHub para ayudarte a explorar enfoques o a ayudarte a desarrollar tu aplicación.
LlamaIndex es un framework de orquestación de IA generativa que te permite conectar e integrar fuentes de datos con modelos de lenguaje grandes (LLM). Puedes usar LlamaIndex para compilar aplicaciones que accedan a la información de datos privados o específicos del dominio y la consulten con consultas en lenguaje natural.
LlamaIndex actúa como un puente entre los datos personalizados y los LLM, lo que facilita el desarrollo de aplicaciones de asistente de conocimiento con capacidades de generación aumentada de recuperación (RAG).
LlamaIndex es adecuado para aplicaciones centradas en documentos porque enfatiza la administración de documentos estructurados, lo que simplifica la indexación y recuperación. Este framework incluye mecanismos de consulta optimizados que mejoran la velocidad y la relevancia del acceso a la información, junto con un manejo sólido de metadatos para el filtrado matizado.
Para obtener más información sobre el framework de LlamaIndex, consulta la documentación del producto LlamaIndex.
Componentes de LlamaIndex
Cloud SQL para PostgreSQL ofrece las siguientes interfaces de LlamaIndex:
- Almacén de vectores
- Almacén de documentos
- Almacenes de índices
- Almacenes de chat
- Lector de documentos
Aprende a usar LlamaIndex con la guía de inicio rápido de Cloud SQL para PostgreSQL.
Almacén de vectores
Esta integración de LlamaIndex te permite usar la naturaleza sólida y escalable de Cloud SQL para PostgreSQL para almacenar y administrar tus datos de LlamaIndex. Si combinas las capacidades de indexación y consulta de LlamaIndex con el alto rendimiento y la confiabilidad de Cloud SQL para PostgreSQL, puedes compilar aplicaciones con tecnología de LLM más eficientes y escalables.
LlamaIndex desglosa un documento (doc, texto y PDF) en componentes de documentos llamados nodos. El VectorStore solo puede contener los vectores de incorporación del contenido del nodo ingerido y el texto de los nodos. Un nodo, que es un concepto de primera clase, contiene contenido de texto, embeddings de vectores y metadatos. Puedes aplicar filtros en estos campos de metadatos para restringir la recuperación de nodos a aquellos que coincidan con los criterios de metadatos especificados.
Si quieres trabajar con almacenes de vectores en
Cloud SQL para PostgreSQL, usa la
PostgresVectorStore clase.
Para obtener más información, consulta Almacenes de vectores
de LlamaIndex.
Almacena embeddings de vectores con la clase PostgresVectorStore
En Cloud SQL para PostgreSQL para el almacén de vectores, se muestra cómo hacer lo siguiente:
- Inicializar una tabla para almacenar embeddings de vectores
- Crear una instancia de clase de embedding con cualquier Llama Index embeddings model.
- Inicializar un almacén de vectores
PostgresVectorStorepredeterminado - Crear y consultar un índice desde el almacén de vectores con VectorStoreIndex
- Crear un almacén de vectores personalizado para almacenar y filtrar metadatos de manera eficaz
- Agregar un índice ANN para mejorar la latencia de búsqueda
Almacenes de documentos e índices
La integración de los almacenes de documentos de LlamaIndex administra el almacenamiento y la recuperación de documentos estructurados, y se optimiza para las capacidades centradas en documentos de LlamaIndex. El almacén de documentos almacena el contenido relacionado con los vectores en el almacén de vectores.
Para obtener más información, consulta la documentación del producto LlamaIndex Almacenes de documentos.
Los almacenes de índices facilitan la administración de índices para permitir consultas rápidas y recuperación de datos, por ejemplo, índice de resumen, de palabras clave y de árbol.Index en LlamaIndex es un almacenamiento ligero solo para los metadatos del nodo. Las actualizaciones de los metadatos del nodo no requieren la reindexación (lectura de la generación de embeddings
) del nodo completo o de todos los nodos de un documento.
Para obtener más información, consulta LlamaIndex Almacenes de índices.
Almacena documentos e índices
En el notebook de Cloud SQL para PostgreSQL
para almacenes de documentos, se muestra cómo usar
Cloud SQL para PostgreSQL para almacenar documentos e índices con las clases PostgresDocumentStore y PostgresIndexStore
. Aprenderás a hacer lo siguiente:
- Crear un
PostgresEngineconPostgresEngine.from_instance(). - Crear tablas para DocumentStore y IndexStore
- Inicializar un
PostgresDocumentStorepredeterminado - Configurar un Postgres
IndexStore - Agregar documentos al
Docstore - Usar almacenes de documentos con varios índices
- Cargar índices existentes
Almacenes de chat
Los almacenes de chat mantienen el historial y el contexto de las conversaciones para las aplicaciones basadas en chat, lo que permite interacciones personalizadas. Los almacenes de chat proporcionan un repositorio central que almacena y recupera mensajes de chat dentro de una conversación, lo que permite que el LLM mantenga el contexto y proporcione respuestas más relevantes según el diálogo en curso.
Los modelos de lenguaje grandes no tienen estado de forma predeterminada, lo que significa que no conservan las entradas anteriores, a menos que se proporcionen de forma explícita cada vez. Si usas un almacén de chat, puedes conservar el contexto de la conversación, lo que permite que el modelo genere respuestas más relevantes y coherentes con el tiempo.
El módulo de memoria en LlamaIndex permite el almacenamiento y la recuperación eficientes del
contexto conversacional, lo que permite interacciones más personalizadas y contextuales
en las aplicaciones de chat. Puedes integrar el módulo de memoria en
LlamaIndex con un ChatStore
y un ChatMemoryBuffer.
Para obtener más información, consulta Almacenes de chat
de LlamaIndex.
Almacena el historial de chat
En el notebook Cloud SQL para PostgreSQL
para almacenes de chat, se muestra cómo usar
Cloud SQL para PostgreSQL para almacenar el historial de chat con la
PostgresChatStore clase. Aprenderás a hacer lo siguiente:
- Crear un
PostgresEngineconPostgresEngine.from_instance(). - Inicializar un
PostgresChatStore.predeterminado - Crear un
ChatMemoryBuffer - Crear una instancia de clase de LLM
- Usar el
PostgresChatStoresin un contexto de almacenamiento - Usar el
PostgresChatStorecon un contexto de almacenamiento - Crear y usar el motor de chat
Lector de documentos
El lector de documentos recupera y transforma de manera eficiente los datos de
Cloud SQL para PostgreSQL
en formatos compatibles con LlamaIndex
para la indexación. La interfaz del lector de documentos proporciona métodos para cargar
datos de una fuente como Documents. Document
es una clase que almacena un fragmento de texto y los metadatos asociados. Puedes usar
lectores de documentos para cargar documentos que deseas almacenar en almacenes de documentos o
que se usan para crear índices.
Para obtener más información, consulta LlamaIndex Lector de documentos.
Recupera datos como documentos
En el notebook Cloud SQL para PostgreSQL
para el lector de documentos, se muestra cómo usar
Cloud SQL para PostgreSQL para recuperar datos como documentos con
la clase PostgresReader. Aprenderás a hacer lo siguiente:
- Crear un
PostgresEngineconPostgresEngine.from_instance(). - Crear
PostgresReader - Cargar documentos con el argumento
table_name - Cargar documentos con una consulta en SQL
- Configurar el formato del contenido de la página
- Cargar los documentos