Compila aplicaciones con tecnología de LLM a través de LlamaIndex

En esta página, se describen algunos casos de uso para compilar aplicaciones potenciadas por LLM con LlamaIndex integrado en Cloud SQL para PostgreSQL. Se proporcionan vínculos a notebooks en GitHub para ayudarte a explorar enfoques o a desarrollar tu aplicación.

LlamaIndex es un framework de organizació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 información de datos privados o específicos de un 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 por recuperación (RAG).

LlamaIndex es ideal para aplicaciones centradas en documentos, ya que enfatiza la administración estructurada de documentos, lo que simplifica la indexación y la recuperación. Este framework cuenta con 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 un filtrado detallado.

Para obtener más información sobre el framework de LlamaIndex, consulta la documentación del producto de 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
  • Tiendas 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 potenciadas por LLM más eficientes y escalables.

LlamaIndex desglosa un documento (doc, texto y PDF) en componentes de documento llamados nodos. VectorStore solo puede contener los vectores de embedding del contenido de los nodos transferidos 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.

Para trabajar con almacenes de vectores en Cloud SQL para PostgreSQL, usa la clase PostgresVectorStore. Para obtener más información, consulta LlamaIndex Vector Stores.

Almacena embeddings de vectores con la clase PostgresVectorStore

En la guía de Cloud SQL para PostgreSQL para el almacén de vectores, se muestra cómo hacer lo siguiente:

  • Inicializa una tabla para almacenar embeddings de vectores
  • Crea una instancia de clase de embedding con cualquier modelo de embeddings de Llama Index.
  • Inicializar un almacén de vectores PostgresVectorStore predeterminado
  • Crea y consulta un índice del almacén de vectores con VectorStoreIndex.
  • Crear un almacén de vectores personalizado para almacenar y filtrar metadatos de forma eficaz
  • Agrega un índice de ANN para mejorar la latencia de búsqueda.

Almacenes de documentos y de índices

La integración de almacenes de documentos de LlamaIndex administra el almacenamiento y la recuperación de documentos estructurados, lo que optimiza las capacidades centradas en documentos de LlamaIndex. El almacén de documentos guarda 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 Document Stores.

Los almacenes de índices facilitan la administración de índices para permitir consultas y recuperación de datos rápidas, por ejemplo, índices de resumen, de palabras clave y de árbol. Index en LlamaIndex es un almacenamiento liviano solo para los metadatos del nodo. Las actualizaciones de los metadatos de los nodos no requieren que se vuelva a indexar (leer la generación de embeddings) el nodo completo ni todos los nodos de un documento.

Para obtener más información, consulta Almacenes de índices de LlamaIndex.

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:

  • Crea un PostgresEngine con PostgresEngine.from_instance().
  • Crea tablas para DocumentStore y IndexStore.
  • Inicializa un PostgresDocumentStore predeterminado.
  • Configura un PostgresIndexStore.
  • Agrega documentos al Docstore.
  • Usa almacenes de documentos con varios índices.
  • Cargar índices existentes

Tiendas 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 pertinentes según el diálogo en curso.

Los modelos de lenguaje grandes no tienen estado de forma predeterminada, lo que significa que no retienen 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 pertinentes y coherentes con el tiempo.

El módulo de memoria en LlamaIndex permite almacenar y recuperar de forma eficiente el contexto de la conversación, 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 LlamaIndex Chat Stores.

Almacena el historial de chat

En el notebook de 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 clase PostgresChatStore. Aprenderás a hacer lo siguiente:

  • Crea un PostgresEngine con PostgresEngine.from_instance().
  • Inicializar un PostgresChatStore. predeterminado
  • Crea un ChatMemoryBuffer.
  • Crea una instancia de clase de LLM.
  • Usa PostgresChatStore sin un contexto de almacenamiento.
  • Usa PostgresChatStore con 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 de Document Reader 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 los documentos que quieras almacenar en almacenes de documentos o usar para crear índices.

Para obtener más información, consulta Lector de documentos de LlamaIndex.

Recupera datos como documentos

En el notebook de 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:

  • Crea un PostgresEngine con PostgresEngine.from_instance().
  • Crea PostgresReader.
  • Carga documentos con el argumento table_name.
  • Carga documentos con una consulta en SQL.
  • Establece el formato del contenido de la página.
  • Carga los documentos.

¿Qué sigue?