En esta página, se describen algunos casos de uso para compilar aplicaciones potenciadas por LLM con LlamaIndex integrado en AlloyDB Omni. Se proporcionan vínculos a notebooks en GitHub para ayudarte a explorar enfoques o 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 crear aplicaciones que accedan a 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 asistentes de conocimiento con capacidades de generación de aumento de recuperación (RAG).
LlamaIndex es adecuado para aplicaciones centradas en documentos porque enfatiza la administración estructurada de documentos, lo que simplifica la indexación y la recuperación. Este framework incluye mecanismos de consulta optimizados que mejoran la velocidad y la relevancia del acceso a la información, además de un sólido control 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
AlloyDB Omni ofrece las siguientes interfaces de LlamaIndex:
- Almacén de vectores
- Almacén de documentos
- Index Stores
- Tiendas de chat
- Lector de documentos
Aprende a usar LlamaIndex con la guía de inicio rápido de AlloyDB Omni.
Almacén de vectores
Esta integración de LlamaIndex te permite usar la naturaleza robusta y escalable de AlloyDB Omni 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 AlloyDB Omni, puedes crear aplicaciones potenciadas por LLM más eficientes y escalables.
LlamaIndex desglosa un documento (doc, texto y PDFs) en componentes de documentos llamados nodos. El VectorStore solo puede contener los vectores de embedding del contenido de los nodos incorporados y el texto de los nodos. Un nodo contiene contenido de texto, incorporaciones 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 AlloyDB Omni, usa la clase AlloyDBVectorStore
. Para obtener más información, consulta LlamaIndex Vector Stores.
Almacena embeddings de vectores con la clase AlloyDBVectorStore
El notebook de AlloyDB Omni para el almacén de vectores muestra cómo hacer lo siguiente:
- Crea un
AlloyDBEngine
para conectarte a tu instancia de AlloyDB Omni conAlloyDBEngine.from_connection_string()
. - Inicializa una tabla para almacenar embeddings de vectores.
- Crea una instancia de la clase de embedding con cualquier modelo de embedding de Llama Index.
- Inicializa un almacén de vectores
AlloyDBVectorStore
predeterminado. - Crea y consulta un índice desde el almacén de vectores con VectorStoreIndex.
- Crea un almacén de vectores personalizado para almacenar y filtrar metadatos.
- Agrega un índice de ANN para mejorar la latencia de la búsqueda.
Almacenes de documentos y de índices
La integración de LlamaIndex Document Stores administra el almacenamiento y la recuperación de documentos estructurados, y se optimiza para las capacidades centradas en documentos de LlamaIndex. DocumentStore 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 Document Stores.
Los almacenes de índices facilitan la administración de índices para permitir la recuperación rápida de datos y consultas, por ejemplo, el índice de resumen, el de palabras clave y el de árbol. Index
en LlamaIndex es un almacenamiento ligero solo para los metadatos de los nodos. Las actualizaciones de los metadatos de los nodos no requieren la reindexación (generación de la incorporación de lectura) del nodo completo ni de todos los nodos de un documento.
Para obtener más información, consulta LlamaIndex Index Stores.
Almacena documentos e índices
El notebook de AlloyDB Omni para Document Stores te muestra cómo usar AlloyDB Omni para almacenar documentos e índices con las clases AlloyDBDocumentStore
y AlloyDBIndexStore
. Aprenderás a hacer lo siguiente:
- Crea un
AlloyDBEngine
para conectarte a tu instancia de AlloyDB Omni conAlloyDBEngine.from_connection_string()
. - Crea tablas para DocumentStore y IndexStore.
- Inicializa un
AlloyDBDocumentStore
predeterminado. - Configura un
AlloyDBIndexStore
. - Agrega documentos al
Docstore
. - Usa almacenes de documentos con varios índices.
- Carga los índices existentes.
Tiendas de chat
Los Chat Stores mantienen el historial y el contexto de las conversaciones para las aplicaciones basadas en chat, lo que permite interacciones personalizadas. Los Chat Stores 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 basadas en el diálogo en curso.
De forma predeterminada, los modelos de lenguaje grandes no tienen estado, lo que significa que no conservan las entradas anteriores, a menos que se proporcionen explícitamente 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 de LlamaIndex permite el almacenamiento y la recuperación eficientes del 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
El notebook de AlloyDB Omni para Chat Stores te muestra cómo usar AlloyDB for PostgreSQL
para almacenar el historial de chat con la clase AlloyDBChatStore
. Aprenderás a hacer lo siguiente:
- Crea un
AlloyDBEngine
para conectarte a tu instancia de AlloyDB Omni conAlloyDBEngine.from_connection_string()
. - Inicializa un
AlloyDBChatStore
predeterminado. - Crea una
ChatMemoryBuffer
. - Crea una instancia de la clase LLM.
- Usa
AlloyDBChatStore
sin un contexto de almacenamiento. - Usa
AlloyDBChatStore
con un contexto de almacenamiento. - Crea y usa Chat Engine.
Lector de documentos
Document Reader recupera y transforma datos de AlloyDB Omni de manera eficiente en formatos compatibles con LlamaIndex para la indexación. La interfaz 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 deseas almacenar en almacenes de documentos o usar para crear índices.
Para obtener más información, consulta LlamaIndex Document Reader.
Recupera datos como documentos
El notebook de AlloyDB Omni para Document Reader te muestra cómo usar AlloyDB Omni para recuperar datos como documentos con la clase AlloyDBReader
. Aprenderás a hacer lo siguiente:
- Crea un
AlloyDBEngine
para conectarte a tu instancia de AlloyDB Omni conAlloyDBEngine.from_connection_string()
. - Crea
AlloyDBReader
. - 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?
- Compila aplicaciones con tecnología de LLM a través de LangChain.
- Aprende a implementar AlloyDB Omni y un modelo de IA local en Kubernetes.