En esta página, se describen algunos casos de uso para compilar aplicaciones con tecnología de LLM con LlamaIndex integrado en AlloyDB 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 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 información de datos privados o específicos del dominio y la consulten con consultas de 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, ya que enfatiza la administración de documentos estructurados, 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, junto con un manejo sólido de metadatos para filtrar con matices.
Para obtener más información sobre el framework de LlamaIndex, consulta la documentación del producto LlamaIndex.
Componentes de LlamaIndex
AlloyDB ofrece las siguientes interfaces de LlamaIndex:
- Vector Store
- Almacén de documentos
- Almacenes de índices
- Tiendas de chat
- Lector de documentos
Obtén información para usar LlamaIndex con la guía de inicio rápido de AlloyDB.
Vector Store
Esta integración de LlamaIndex te permite usar la naturaleza sólida y escalable de AlloyDB 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, puedes compilar aplicaciones más eficientes y escalables con LLM.
LlamaIndex desglosa un documento (archivo de texto, PDF) en componentes de documentos llamados nodos. VectorStore solo puede contener los vectores de incorporación del contenido de los nodos ingeridos y el texto de los nodos. Un nodo, que es un concepto de primera clase, 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, usa la
clase AlloyDBVectorStore
.
Para obtener más información, consulta LlamaIndex
Vector Stores.
Almacena embeddings de vectores con la clase AlloyDBVectorStore
En el notebook de AlloyDB para el almacén de vectores, se muestra cómo hacer lo siguiente:
- Cómo inicializar una tabla para almacenar embeddings de vectores
- Crea una instancia de clase de incorporación con cualquier modelo de incorporaciones de índices de Llama.
- 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 de forma eficaz.
- Agrega un índice de ANN para mejorar la latencia de la 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 funciones centradas en documentos de LlamaIndex. Document Store 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.
Las tiendas de índices facilitan la administración de los índices para permitir consultas rápidas y la recuperación de datos, por ejemplo, el resumen, la palabra clave y el índice de árbol.Index
en LlamaIndex es un almacenamiento ligero solo para los metadatos del nodo. Las actualizaciones de los metadatos de los nodos no requieren volver a indexar (generar la incorporación de lectura) el nodo completo o todos los nodos de un documento.
Para obtener más información, consulta Almacenes de índices de LlamaIndex.
Almacena documentos y índices
En el notebook de AlloyDB para Document Stores, se muestra cómo usar AlloyDB para almacenar documentos y índices con las clases AlloyDBDocumentStore
y AlloyDBIndexStore
.
Aprenderás a hacer lo siguiente:
- Crea un
AlloyDBEngine
conAlloyDBEngine.from_instance()
. - Crea tablas para DocumentStore y IndexStore.
- Inicializa un
AlloyDBDocumentStore
predeterminado. - Configura un
AlloyDBIndexStore
. - Agrega documentos a
Docstore
. - Usa almacenes de documentos con varios índices.
- Carga los índices existentes.
Tiendas de chat
Las tiendas 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 en función del diálogo en curso.
Los modelos grandes de lenguaje no tienen estado de forma predeterminada, lo que significa que no retengan entradas anteriores, a menos que se proporcionen de forma explícita cada vez. Cuando usas un almacén de chat, puedes preservar 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 de LlamaIndex permite el almacenamiento y la recuperación eficientes del contexto de 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 AlloyDB para Chat Stores, se 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
conAlloyDBEngine.from_instance()
. - 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 el motor de chat.
Lector de documentos
El Lector de documentos recupera y transforma de manera eficiente los datos de AlloyDB en formatos compatibles con LlamaIndex para el indexado. La interfaz de Document Reader proporciona métodos para cargar datos de una fuente como Documents
. Document
es una clase que almacena un 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.
Cómo recuperar datos como documentos
En el notebook de AlloyDB para Document Reader, se muestra cómo usar AlloyDB para recuperar datos como documentos con la clase AlloyDBReader
. Aprenderás a hacer lo siguiente:
- Crea un
AlloyDBEngine
conAlloyDBEngine.from_instance()
. - Crea
AlloyDBReader
. - Carga documentos con el argumento
table_name
. - Carga documentos con una consulta de SQL.
- Establece el formato del contenido de la página.
- Carga los documentos.