Crie aplicações baseadas em MDIs com o LlamaIndex

Selecione uma versão da documentação:

Esta página descreve alguns exemplos de utilização para criar aplicações baseadas em MDIs com o LlamaIndex integrado com o AlloyDB Omni. 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 MDIs, facilitando o desenvolvimento de aplicações de assistentes de conhecimentos 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 apresenta 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 Omni 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 guia de início rápido do AlloyDB Omni.

Loja de vetores

Esta integração do LlamaIndex permite-lhe usar a natureza robusta e escalável do AlloyDB Omni 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 Omni, pode criar aplicações com tecnologia de MDIs mais eficientes e escaláveis.

O LlamaIndex divide um documento (DOC, texto e PDFs) em componentes do documento 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ó 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 Omni, 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 Omni para a loja de vetores mostra-lhe como fazer o seguinte:

  • Crie um AlloyDBEngine para se ligar à sua instância do AlloyDB Omni através do AlloyDBEngine.from_connection_string().
  • Inicialize uma tabela para armazenar incorporações de vetores.
  • Crie uma instância de classe de incorporação usando 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.
  • Adicione um índice ANN para melhorar a latência de pesquisa.

Document and Index Stores

A integração das 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.

As lojas de índice 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 (leia-se 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 Omni para lojas de documentos mostra como usar o AlloyDB Omni para armazenar documentos e índices através das classes AlloyDBDocumentStore e AlloyDBIndexStore. Aprende a fazer o seguinte:

  • Crie um AlloyDBEngine para se ligar à sua instância do AlloyDB Omni através do AlloyDBEngine.from_connection_string().
  • 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 armazenamentos 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 armazenamentos de chat oferecem um repositório central que armazena e obtém mensagens de chat numa conversa, o que permite ao GML manter o contexto e fornecer respostas mais relevantes com base no diálogo em curso.

Os grandes modelos de linguagem são, por predefinição, sem estado, o que significa que não retê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 o artigo LlamaIndex Chat Stores.

Armazene o histórico do chat

O bloco de notas do AlloyDB Omni para lojas de chat mostra-lhe como usar o AlloyDB for PostgreSQL para armazenar o histórico do chat com a classe AlloyDBChatStore. Aprende a fazer o seguinte:

  • Crie um AlloyDBEngine para se ligar à sua instância do AlloyDB Omni através do AlloyDBEngine.from_connection_string().
  • 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 Omni 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 os leitores de documentos para carregar documentos que quer armazenar em repositórios de documentos ou usar para criar índices.

Para mais informações, consulte o leitor de documentos do LlamaIndex.

Recupere dados como documentos

O bloco de notas do AlloyDB Omni para o leitor de documentos mostra como usar o AlloyDB Omni para obter dados como documentos através da classe AlloyDBReader. Vai aprender a fazer o seguinte:

  • Crie um AlloyDBEngine para se ligar à sua instância do AlloyDB Omni através do AlloyDBEngine.from_connection_string().
  • 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?