Esta página descreve alguns casos de uso para criar aplicativos com tecnologia de LLM usando o LlamaIndex integrado ao Cloud SQL para PostgreSQL. Os links para notebooks no GitHub são fornecidos para ajudar você a explorar abordagens ou ajudar você a 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 grandes (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 ele enfatiza o gerenciamento de documentos estruturados, 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 Cloud SQL para PostgreSQL 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 Cloud SQL para PostgreSQL.
Repositório de vetores
Essa integração do LlamaIndex permite usar a natureza robusta e escalonável do Cloud SQL para PostgreSQL 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 Cloud SQL para PostgreSQL, é 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ó, que é um conceito de primeira classe, 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
Cloud SQL para PostgreSQL, use a
PostgresVectorStore classe.
Para mais informações, consulte LlamaIndex
Repositórios de vetores.
Armazenar embeddings de vetor com a classe PostgresVectorStore
O Cloud SQL para PostgreSQL para repositório de vetores mostra como fazer o seguinte:
- Inicializar uma tabela para armazenar embeddings de vetor
- Criar uma instância de classe de embedding usando qualquer Llama Index embeddings model.
- Inicializar um repositório de vetores
PostgresVectorStorepadrão. - Criar e consultar um índice do repositório de vetores usando VectorStoreIndex.
- Criar um repositório de vetores personalizado para armazenar e filtrar metadados de maneira eficaz.
- Adicionar um índice ANN para melhorar a latência de pesquisa.
Repositórios de documentos e índices
A integração dos repositórios de documentos do LlamaIndex gerencia o armazenamento de documentos estruturados e a recuperação, otimizando os recursos centrados em documentos do LlamaIndex. O repositório de documentos 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 (leia a geração de embedding
) do nó completo ou de todos os nós em um documento.
Para mais informações, consulte LamaIndex Repositórios de índices.
Armazenar documentos e índices
O notebook Cloud SQL para PostgreSQL para repositórios de documentos mostra como usar
Cloud SQL para PostgreSQL para armazenar documentos e índices usando
as classes PostgresDocumentStore e PostgresIndexStore. Você vai aprender a fazer o seguinte:
- Criar um
PostgresEngineusandoPostgresEngine.from_instance(). - Criar tabelas para o DocumentStore e o IndexStore.
- Inicializar um
PostgresDocumentStorepadrão. - Configurar um Postgres
IndexStore. - Adicionar documentos ao
Docstore. - Usar repositórios de documentos com vários índices.
- Carregar í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 grandes 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 a um ChatMemoryBuffer.
Para mais informações, consulte LlamaIndex
Repositórios de chat.
Armazenar o histórico de chat
O notebook Cloud SQL para PostgreSQL
para repositórios de chat mostra como usar
Cloud SQL para PostgreSQL para armazenar o histórico de chat usando a
classe PostgresChatStore. Você vai aprender a fazer o seguinte:
- Criar um
PostgresEngineusandoPostgresEngine.from_instance(). - Inicializar um
PostgresChatStore.padrão. - Criar um
ChatMemoryBuffer. - Criar uma instância de classe LLM.
- Usar o
PostgresChatStoresem um contexto de armazenamento. - Usar o
PostgresChatStorecom um contexto de armazenamento. - Criar e usar o mecanismo de chat.
Leitor de documentos
O leitor de documentos recupera e transforma dados do
Cloud SQL para PostgreSQL
em formatos compatíveis com o LlamaIndex
para indexação. A interface do leitor de documentos fornece métodos para carregar
dados de uma fonte 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 LlamaIndex Leitor de documentos.
Recuperar dados como documentos
O notebook Cloud SQL para PostgreSQL para leitor de documentos mostra como usar
Cloud SQL para PostgreSQL para recuperar dados como documentos usando
a classe PostgresReader. Você vai aprender a fazer o seguinte:
- Criar um
PostgresEngineusandoPostgresEngine.from_instance(). - Criar
PostgresReader. - Carregar documentos usando o argumento
table_name. - Carregar documentos usando uma consulta SQL.
- Definir o formato do conteúdo da página.
- Carregar os documentos.