Nesta página, descrevemos alguns casos de uso para criar aplicativos com tecnologia de LLM usando o LlamaIndex integrado ao Cloud SQL para PostgreSQL. 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 com modelos de linguagem grandes (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 tem mecanismos de consulta otimizados que aumentam a velocidade e a relevância do acesso às informações, além de um processamento robusto de metadados para filtragem refinada.
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
- Index Stores
- Lojas do 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
Com essa integração, é possível 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 a alta performance e confiabilidade do Cloud SQL para PostgreSQL, é possível criar aplicativos mais eficientes e escalonáveis com tecnologia de LLM.
O LlamaIndex divide um documento (doc, texto e PDFs) em componentes chamados de nós. O VectorStore só pode conter os vetores de embedding do conteúdo dos nós ingeridos 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 especificados.
Para trabalhar com armazenamentos de vetores no
Cloud SQL para PostgreSQL, use a
classe PostgresVectorStore
.
Para mais informações, consulte LlamaIndex
Vector Stores.
Armazenar embeddings de vetor com a classe PostgresVectorStore
O Cloud SQL para PostgreSQL para armazenamento de vetores mostra como fazer o seguinte:
- Inicializar uma tabela para armazenar embeddings de vetor
- Crie uma instância de classe de embedding usando qualquer modelo de embedding do índice do Llama.
- Inicialize um repositório de vetores
PostgresVectorStore
padrã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 de maneira eficaz.
- Adicione um índice de ANN para melhorar a latência de pesquisa.
Armazenamentos 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 e recuperação de dados rápidas, por exemplo, índice de resumo, palavra-chave e árvore.Index
no LlamaIndex é um armazenamento leve apenas para os metadados do nó. As atualizações nos metadados do nó não exigem a reindexação (leitura da geração de incorporação) do nó completo ou de todos os nós em um documento.
Para mais informações, consulte LlamaIndex Index Stores.
Armazenar documentos e índices
O notebook do Cloud SQL para PostgreSQL sobre repositórios de documentos mostra como usar o Cloud SQL para PostgreSQL para armazenar documentos e índices usando as classes PostgresDocumentStore
e PostgresIndexStore
. Você vai aprender a fazer o seguinte:
- Crie um
PostgresEngine
usandoPostgresEngine.from_instance()
. - Crie tabelas para o DocumentStore e o IndexStore.
- Inicialize um
PostgresDocumentStore
padrão. - Configure um Postgres
IndexStore
. - Adicione documentos ao
Docstore
. - Usar repositórios de documentos com vários índices.
- Carregar índices atuais.
Lojas do chat
As lojas de chat mantêm o histórico e o contexto das conversas para aplicativos baseados em chat, permitindo interações personalizadas. Os repositórios de chat oferecem 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.
Por padrão, os modelos de linguagem grandes não têm estado, o que significa que eles não retêm entradas anteriores, a menos que sejam fornecidas explicitamente a cada vez. Ao usar um repositório de chat, você preserva 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 de contexto de conversa, permitindo interações mais personalizadas e contextuais em aplicativos de chat. É possível integrar o módulo de memória no LlamaIndex com um ChatStore e um ChatMemoryBuffer.
Para mais informações, consulte LlamaIndex
Chat Stores.
Armazenar o histórico de chat
O notebook do Cloud SQL para PostgreSQL (em inglês) para repositórios de chat mostra como usar o Cloud SQL para PostgreSQL para armazenar o histórico de conversas usando a classe PostgresChatStore
. Você vai aprender a fazer o seguinte:
- Crie um
PostgresEngine
usandoPostgresEngine.from_instance()
. - Inicializar um
PostgresChatStore.
padrão - Crie um
ChatMemoryBuffer
. - Crie uma instância de classe LLM.
- Use o
PostgresChatStore
sem um contexto de armazenamento. - Use o
PostgresChatStore
com um contexto de armazenamento. - Crie e use o Chat Engine.
Leitor de documentos
O Document Reader recupera e transforma dados do Cloud SQL para PostgreSQL em formatos compatíveis com o LlamaIndex para indexação. A interface Document Reader 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 usar para criar índices.
Para mais informações, consulte Leitor de documentos do LlamaIndex.
Recuperar dados como documentos
O notebook do Cloud SQL para PostgreSQL do Document Reader mostra como usar o Cloud SQL para PostgreSQL para recuperar dados como documentos usando a classe PostgresReader
. Você vai aprender a fazer o seguinte:
- Crie um
PostgresEngine
usandoPostgresEngine.from_instance()
. - Criar
PostgresReader
. - Carregue documentos usando o argumento
table_name
. - Carregar documentos usando uma consulta SQL.
- Defina o formato do conteúdo da página.
- Carregue os documentos.