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 doAlloyDBEngine.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 doAlloyDBEngine.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 doAlloyDBEngine.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 doAlloyDBEngine.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?
- Crie aplicações com tecnologia de GMLs usando o LangChain.
- Saiba como implementar o AlloyDB Omni e um modelo de IA local no Kubernetes.