Esta página descreve alguns exemplos de utilização para criar aplicações baseadas em MDIs usando o LlamaIndex integrado com o AlloyDB for PostgreSQL. São fornecidos links para blocos de notas no GitHub para ajudar a explorar abordagens ou a desenvolver a sua aplicação.
O LlamaIndex é uma framework de orquestração de IA generativa que lhe permite ligar e integrar origens de dados com modelos de linguagem (conteúdo extenso) (MDLs/CEs). Pode usar o LlamaIndex para criar aplicações que acedem e consultam informações de dados privados ou específicos do domínio através de consultas de linguagem natural.
O LlamaIndex funciona como uma ponte entre os dados personalizados e os GMLs, facilitando o desenvolvimento de aplicações de assistentes de conhecimento com capacidades de geração aumentada de recuperação (RAG).
O LlamaIndex é adequado para aplicações centradas em documentos porque realça a gestão de documentos estruturados, o que simplifica a indexação e a obtenção. Esta estrutura inclui mecanismos de consulta otimizados que melhoram a velocidade e a relevância do acesso às informações, juntamente com um processamento de metadados robusto para uma filtragem detalhada.
Para mais informações sobre a framework LlamaIndex, consulte a documentação do produto LlamaIndex.
Componentes do LlamaIndex
O AlloyDB oferece as seguintes interfaces do LlamaIndex:
- Loja de vetores
- Armazenamento de documentos
- Indexe lojas
- Lojas do Chat
- Leitor de documentos
Saiba como usar o LlamaIndex com o início rápido do AlloyDB.
Loja de vetores
Esta integração do LlamaIndex permite-lhe usar a natureza robusta e escalável do AlloyDB para armazenar e gerir os seus dados do LlamaIndex. Ao combinar as capacidades de indexação e consulta do LlamaIndex com o elevado desempenho e a fiabilidade do AlloyDB, pode criar aplicações mais eficientes e escaláveis com tecnologia de MDI/CE.
O LlamaIndex divide um documento (DOC, texto e PDFs) em componentes de documentos denominados nós. O VectorStore só pode conter os vetores de incorporação de conteúdos de nós carregados e o texto dos nós. Um nó, que é um conceito de primeira classe, contém conteúdo de texto, incorporações de vetores e metadados. Pode aplicar filtros nestes campos de metadados para restringir a obtenção de nós àqueles que correspondem aos critérios de metadados especificados.
Para trabalhar com arquivos vetoriais no AlloyDB, use a classe AlloyDBVectorStore
.
Para mais informações, consulte o artigo LlamaIndex
Vector Stores.
Armazene incorporações de vetores com a classe AlloyDBVectorStore
O bloco de notas do AlloyDB para o arquivo de vetores mostra-lhe como fazer o seguinte:
- Inicialize uma tabela para armazenar incorporações vetoriais
- Crie uma instância de classe de incorporação com qualquer modelo de incorporações do Llama Index.
- Inicialize uma base de dados vetorial
AlloyDBVectorStore
predefinida. - Crie e consulte um índice da base de dados vetorial através de VectorStoreIndex.
- Crie um arquivo de vetores personalizado para armazenar e filtrar metadados de forma eficaz.
- Adicione um índice ANN para melhorar a latência de pesquisa.
Document and Index Stores
A integração de lojas de documentos do LlamaIndex gere o armazenamento e a obtenção de documentos estruturados, otimizando-os para as capacidades centradas em documentos do LlamaIndex. Document Store armazena o conteúdo relacionado com os vetores no armazenamento de vetores.
Para mais informações, consulte a documentação do produto LlamaIndex Document Stores.
Os Index Stores facilitam a gestão de índices para permitir consultas rápidas e obtenção de dados, por exemplo, o índice de resumo, de palavras-chave e de árvore.Index
no LlamaIndex é um armazenamento simples apenas para os metadados dos nós. As atualizações aos metadados dos nós não requerem a reindexação (leitura da geração de incorporações) do nó completo nem de todos os nós num documento.
Para mais informações, consulte o artigo LlamaIndex Index Stores.
Armazene documentos e índices
O bloco de notas do AlloyDB
para lojas de documentos mostra como usar o AlloyDB para armazenar documentos e índices através das classes AlloyDBDocumentStore
e AlloyDBIndexStore
.
Aprende a fazer o seguinte:
- Crie um
AlloyDBEngine
usandoAlloyDBEngine.from_instance()
. - Crie tabelas para o DocumentStore e o IndexStore.
- Inicialize um
AlloyDBDocumentStore
predefinido. - Configure um
AlloyDBIndexStore
. - Adicione documentos à pasta
Docstore
. - Use arquivos de documentos com vários índices.
- Carregar índices existentes.
Lojas do Chat
Os arquivos de chat mantêm o histórico de conversas e o contexto para aplicações baseadas em chat, o que permite interações personalizadas. Os arquivos de chat oferecem um repositório central que armazena e obtém mensagens de chat numa conversa, permitindo que o GML mantenha o contexto e forneça respostas mais relevantes com base no diálogo em curso.
Por predefinição, os grandes modelos de linguagem não têm estado, o que significa que não mantêm as entradas anteriores, a menos que essas entradas sejam fornecidas explicitamente de cada vez. Ao usar um arquivo de chat, pode preservar o contexto da conversa, o que permite ao modelo gerar respostas mais relevantes e coerentes ao longo do tempo.
O módulo de memória no LlamaIndex permite o armazenamento e a obtenção eficientes do contexto de conversa, o que permite interações mais personalizadas e conscientes do contexto em aplicações de chat. Pode integrar o módulo de memória no
LlamaIndex com um ChatStore
e um ChatMemoryBuffer.
Para mais informações, consulte LlamaIndex
Chat Stores.
Armazene o histórico do chat
O bloco de notas do AlloyDBpara lojas de chat mostra como usar o AlloyDB for
PostgreSQL
para armazenar o histórico do chat através da classe AlloyDBChatStore
. Aprende a fazer o seguinte:
- Crie um
AlloyDBEngine
usandoAlloyDBEngine.from_instance()
. - Inicialize um
AlloyDBChatStore
predefinido. - Crie um
ChatMemoryBuffer
. - Crie uma instância de classe de MDG.
- Use o
AlloyDBChatStore
sem um contexto de armazenamento. - Use o
AlloyDBChatStore
com um contexto de armazenamento. - Crie e use o motor de chat.
Leitor de documentos
O Document Reader obtém e transforma de forma eficiente os dados do
AlloyDB
em formatos compatíveis com o LlamaIndex
para indexação. A interface Document Reader fornece métodos para carregar dados de uma origem como Documents
. Document
é uma classe que armazena um fragmento de texto e metadados associados. Pode usar
leitores de documentos para carregar documentos que quer armazenar em arquivos de documentos ou
usados para criar índices.
Para mais informações, consulte o leitor de documentos do LlamaIndex.
Recupere dados como documentos
O bloco de notas do AlloyDBpara o leitor de documentos mostra-lhe como usar o AlloyDB para obter dados como documentos através da classe AlloyDBReader
. Aprende a fazer o seguinte:
- Crie um
AlloyDBEngine
usandoAlloyDBEngine.from_instance()
. - Criar
AlloyDBReader
. - Carregue documentos através do argumento
table_name
. - Carregue documentos através de uma consulta SQL.
- Defina o formato do conteúdo da página.
- Carregue os documentos.