Pressione Esc para fechar

Indexing - Weaviate

← Voltar para o Dia 4: RAG: finalmente

Weaviate

O que é

Weaviate é um banco de dados vetorial que permite armazenar, indexar e pesquisar embeddings, sendo bastante utilizado em aplicações de RAG, busca semântica e sistemas de recomendação.

No contexto de Indexing, o Weaviate recebe os vetores gerados pelo modelo de embeddings e cria as estruturas necessárias para localizar rapidamente os vetores mais semelhantes a uma consulta.

Além do vetor, cada objeto pode armazenar os dados originais e propriedades estruturadas, como título, categoria, página, data ou identificador do documento.

Uma representação simplificada seria:

Chunk
   ↓
Embedding Model
   ↓
Vector Embedding
   ↓
Weaviate
   ├── Vector
   ├── Properties
   └── Index

Assim como Qdrant, Pinecone e outras soluções, o Weaviate não é o processo de indexing em si. Ele é uma tecnologia que armazena os dados e fornece mecanismos de indexação e busca.

Como funciona

Imagine uma coleção com milhares de trechos de documentos.

Cada trecho é transformado em um vetor:

"Funcionários devem solicitar férias..."
             ↓
[0.21, -0.73, 0.45, ...]

O Weaviate armazena esse vetor junto com as informações relacionadas:

Objeto
├── Vector
└── Properties
    ├── conteúdo
    ├── documento
    ├── página
    ├── seção
    └── ano

Quando o usuário faz uma pergunta, ela também é transformada em um vetor:

Pergunta
   ↓
Embedding Model
   ↓
Query Vector
   ↓
Weaviate
   ↓
Vetores mais semelhantes
   ↓
Chunks relevantes

O sistema pode então utilizar esses chunks como contexto para o LLM.

Um ponto importante é que o Weaviate também permite trabalhar com filtros estruturados. Assim, uma busca pode combinar similaridade vetorial com informações armazenadas nas propriedades.

Por exemplo:

Pergunta:
"Qual é a política de férias?"

Busca semântica
        +
Filtro: ano = 2026
        ↓
Weaviate
        ↓
Documentos semanticamente relevantes
e pertencentes ao ano de 2026

Isso é particularmente útil em RAG, porque a similaridade semântica sozinha pode não ser suficiente para selecionar a informação correta.

Um exemplo

Imagine uma empresa que possui 100 mil documentos internos.

Durante a ingestão:

Documentos
   ↓
Parsing
   ↓
Cleaning
   ↓
Chunking
   ↓
Embedding Model
   ↓
Vector Embeddings
   ↓
Weaviate

Um chunk poderia ser armazenado aproximadamente assim:

ID:
chunk_84721

Vector:
[0.18, -0.42, 0.71, ...]

Properties:
{
  "content": "As férias devem ser solicitadas com 30 dias de antecedência.",
  "document": "politica_ferias.pdf",
  "section": "Férias",
  "page": 4,
  "year": 2026
}

Depois, o usuário pergunta:

"Com quanto tempo de antecedência preciso solicitar minhas férias?"

A pergunta é transformada em embedding e enviada ao Weaviate.

O sistema procura vetores semanticamente próximos e pode retornar o chunk correspondente à política de férias.

O resultado então segue para o LLM:

Pergunta
   ↓
Embedding
   ↓
Weaviate
   ↓
Chunks relevantes
   ↓
Contexto
   ↓
LLM
   ↓
Resposta

Por que é importante

O Weaviate é importante porque combina armazenamento de dados, indexação vetorial e mecanismos de busca em uma infraestrutura voltada para aplicações que precisam encontrar informações semanticamente relacionadas.

Dentro de um sistema RAG, ele pode assumir uma posição como esta:

Ingestion
   ↓
Parsing
   ↓
Cleaning
   ↓
Chunking
   ↓
Embedding
   ↓
Weaviate
   ↓
Vector Search
   ↓
Retrieval
   ↓
LLM

Ele também ajuda a entender uma distinção importante:

Conceito Função
Embedding Model Transforma conteúdo em vetores
Vector Embedding Representa semanticamente o conteúdo
Weaviate Armazena, indexa e pesquisa vetores
Vector Index Estrutura usada para acelerar a busca
Vector Search Procura vetores semelhantes
Retrieval Seleciona informações para fornecer ao LLM

O Weaviate pode trabalhar com diferentes formas de busca e indexação, incluindo estruturas voltadas para Approximate Nearest Neighbor, conceito que será importante para entender como bancos vetoriais conseguem pesquisar grandes quantidades de embeddings sem comparar necessariamente a consulta com todos os vetores.

A ideia central é: Weaviate é uma infraestrutura de banco de dados vetorial que organiza embeddings e seus metadados para permitir buscas semânticas eficientes, sendo uma das opções que podem ser utilizadas na etapa de indexing de um sistema RAG.

link de compartilhamento