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). Você pode usar o LlamaIndex para criar aplicativos que acessam e consultam informações de dados particulares 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 às 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
Saiba como 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, você pode 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 vetoriais 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 vetoriais 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 vetoriais.
- 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 como 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, você pode 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 Chat Stores mostra como usar AlloyDB for PostgreSQL para armazenar o histórico de chat
usando a classe AlloyDBChatStore. Você vai aprender como 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.
Para mais informações, consulte Leitor de documentos do LlamaIndex.
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 como 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
- Crie aplicativos com tecnologia de LLM usando o LangChain.
- Saiba como implantar o AlloyDB Omni e um modelo de IA local no Kubernetes.