Esta página descreve alguns casos de uso para criar aplicativos com tecnologia de LLM usando o LlamaIndex integrado ao AlloyDB Omni. Os links para notebooks no GitHub são fornecidos para ajudar você a explorar abordagens ou desenvolver seu aplicativo.
O LlamaIndex é um framework de orquestração de IA generativa que permite conectar e integrar fontes de dados a modelos de linguagem grande (LLMs). É possível usar o LlamaIndex para criar aplicativos que acessam e consultam informações de dados privados ou específicos do domínio usando consultas de linguagem natural.
O LlamaIndex atua como uma ponte entre dados personalizados e LLMs, facilitando o desenvolvimento de aplicativos de assistente de conhecimento com recursos de geração aumentada de recuperação (RAG).
O LlamaIndex é adequado para aplicativos centrados em documentos porque enfatiza o gerenciamento estruturado de documentos, o que simplifica a indexação e a recuperação. Esse framework apresenta mecanismos de consulta otimizados que melhoram a velocidade e a relevância do acesso a informações, além de um tratamento robusto de metadados para filtragem diferenciada.
Para mais informações sobre o framework LlamaIndex, consulte a documentação do produto LlamaIndex.
Componentes do LlamaIndex
O AlloyDB Omni oferece as seguintes interfaces do LlamaIndex:
- Repositório de vetores
- Repositório de documentos
- Repositórios de índices
- Repositórios de chat
- Leitor de documentos
Aprenda a usar o LlamaIndex com o guia de início rápido do AlloyDB Omni.
Repositório de vetores
Essa integração do LlamaIndex permite usar a natureza robusta e escalonável do AlloyDB Omni para armazenar e gerenciar seus dados do LlamaIndex. Ao combinar os recursos de indexação e consulta do LlamaIndex com o alto desempenho e a confiabilidade do AlloyDB Omni, é possível criar aplicativos com tecnologia de LLM mais eficientes e escalonáveis.
O LlamaIndex divide um documento (doc, texto e PDFs) em componentes de documento chamados nós. O VectorStore só pode conter os vetores de embedding do conteúdo do nó ingerido e o texto dos nós. Um nó contém conteúdo de texto, embeddings de vetor e metadados. É possível aplicar filtros nesses campos de metadados para restringir a recuperação de nós àqueles que correspondem aos critérios de metadados especificados.
Para trabalhar com repositórios de vetores no AlloyDB Omni, use a classe AlloyDBVectorStore. Para mais informações, consulte
Repositórios de vetores do LlamaIndex.
Armazenar embeddings de vetor com a classe AlloyDBVectorStore
O notebook do AlloyDB Omni para repositório de vetores mostra como fazer o seguinte:
- Crie um
AlloyDBEnginepara se conectar à instância do AlloyDB Omni usandoAlloyDBEngine.from_connection_string(). - Inicialize uma tabela para armazenar embeddings de vetor.
- Crie uma instância de classe de embedding usando qualquer modelo de embeddings do Llama Index.
- Inicialize um repositório de vetores
AlloyDBVectorStorepadrão. - Crie e consulte um índice do repositório de vetores usando VectorStoreIndex.
- Crie um repositório de vetores personalizado para armazenar e filtrar metadados.
- Adicione um índice ANN para melhorar a latência de pesquisa.
Repositórios de documentos e índices
A integração do LlamaIndex Document Stores gerencia o armazenamento e a recuperação de documentos estruturados, otimizando os recursos centrados em documentos do LlamaIndex. O Document Store armazena o conteúdo relacionado aos vetores no repositório de vetores.
Para mais informações, consulte a documentação do produto LlamaIndex Document Stores.
Os repositórios de índices facilitam o gerenciamento de índices para permitir consultas rápidas e recuperação de dados, por exemplo, índice de resumo, palavra-chave e árvore. Index no LlamaIndex é um armazenamento leve apenas para os metadados do nó. As atualizações dos metadados do nó não exigem a reindexação (geração de embedding de leitura) do nó completo ou de todos os nós em um documento.
Para mais informações, consulte Repositórios de índices do LlamaIndex.
Armazenar documentos e índices
O notebook do AlloyDB Omni
para Document Stores mostra como usar o AlloyDB Omni para armazenar
documentos e índices usando as AlloyDBDocumentStore e AlloyDBIndexStore
classes. Você vai aprender a fazer o seguinte:
- Crie um
AlloyDBEnginepara se conectar à instância do AlloyDB Omni usandoAlloyDBEngine.from_connection_string(). - Crie tabelas para o DocumentStore e o IndexStore.
- Inicialize um
AlloyDBDocumentStorepadrão. - Configure um
AlloyDBIndexStore. - Adicione documentos ao
Docstore. - Use repositórios de documentos com vários índices.
- Carregue os índices atuais.
Repositórios de chat
Os repositórios de chat mantêm o histórico e o contexto da conversa para aplicativos baseados em chat, permitindo interações personalizadas. Os repositórios de chat fornecem um repositório central que armazena e recupera mensagens de chat em uma conversa, permitindo que o LLM mantenha o contexto e forneça respostas mais relevantes com base no diálogo em andamento.
Os modelos de linguagem grande são sem estado por padrão, o que significa que eles não retêm entradas anteriores, a menos que essas entradas sejam fornecidas explicitamente a cada vez. Ao usar um repositório de chat, é possível preservar o contexto da conversa, o que permite que o modelo gere respostas mais relevantes e coerentes ao longo do tempo.
O módulo de memória no LlamaIndex permite o armazenamento e a recuperação eficientes do contexto conversacional, permitindo interações mais personalizadas e contextuais em aplicativos de chat. É possível integrar o módulo de memória no LlamaIndex a um ChatStore e um ChatMemoryBuffer. Para mais informações, consulte Repositórios de chat do LlamaIndex.
Armazenar o histórico de chat
O notebook do AlloyDB Omni
para repositórios de chat mostra como usar AlloyDB Omni para armazenar o histórico de chat
usando a classe AlloyDBChatStore. Você vai aprender a fazer o seguinte:
- Crie um
AlloyDBEnginepara se conectar à instância do AlloyDB Omni usandoAlloyDBEngine.from_connection_string(). - Inicialize um
AlloyDBChatStorepadrão. - Crie um
ChatMemoryBuffer. - Crie uma instância de classe LLM.
- Use o
AlloyDBChatStoresem um contexto de armazenamento. - Use o
AlloyDBChatStorecom um contexto de armazenamento. - Crie e use o mecanismo de chat.
Leitor de documentos
O leitor de documentos recupera e transforma dados do AlloyDB Omni em formatos compatíveis com o LlamaIndex para indexação. A interface do leitor de documentos fornece métodos para carregar dados de uma origem como Documents.
Document é uma classe que armazena um trecho de texto e metadados associados. É possível usar leitores de documentos para carregar documentos que você quer armazenar em repositórios de documentos ou usados para criar índices.
Recuperar dados como documentos
O notebook do AlloyDB Omni
para leitor de documentos mostra como usar o AlloyDB Omni para recuperar
dados como documentos usando a classe AlloyDBReader. Você vai aprender a fazer o seguinte:
- Crie um
AlloyDBEnginepara se conectar à instância do AlloyDB Omni usandoAlloyDBEngine.from_connection_string(). - Crie
AlloyDBReader. - Carregue documentos usando o argumento
table_name. - Carregue documentos usando uma consulta SQL.
- Defina o formato do conteúdo da página.
- Carregue os documentos.
A seguir
- Aprenda a instalar o AlloyDB Omni usando o RPM.