Crie aplicações baseadas em MDIs com o LlamaIndex

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 usando AlloyDBEngine.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 usando AlloyDBEngine.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 usando AlloyDBEngine.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.

O que se segue?