Chatbot de Geração Aumentada por Recuperação (RAG) de código aberto baseado em Weaviate, oferecendo uma solução RAG completa, fluida e amigável.

BSD-3-ClausePythonVerbaweaviate 7.4k Last Updated: July 14, 2025

Introdução Detalhada ao Projeto Verba

Visão Geral do Projeto

Verba é uma aplicação de Geração Aumentada por Recuperação (RAG) de código aberto desenvolvida pela Weaviate, conhecida como "The Golden RAGtriever". Ela oferece uma solução RAG completa, fluida e amigável, permitindo que os usuários explorem conjuntos de dados e extraiam insights em etapas simples, seja usando Ollama e Huggingface localmente, ou através de provedores de LLM como Anthropic, Cohere e OpenAI.

Funcionalidades Principais

🤖 Suporte a Modelos

  • Modelos Locais: Suporta Ollama (como Llama3) e modelos HuggingFace
  • Modelos em Nuvem: Integração com provedores de IA populares como OpenAI, Anthropic, Cohere, Groq, Novita AI, Upstage, etc.
  • Modelos de Embedding: Suporta vários modelos de embedding, incluindo Weaviate, SentenceTransformers, VoyageAI, etc.

📁 Suporte a Dados

  • Tipos de Arquivo: Suporta múltiplos formatos como .txt, .md, .pdf, .csv, .docx, .pptx
  • Fontes de Dados: Pode importar dados de sistemas de arquivos locais, repositórios GitHub, URLs, etc.
  • Funcionalidades Especiais:
    • Web scraping via Firecrawl
    • Análise de documentos via UpstageDocumentParse
    • Processamento de arquivos de áudio via AssemblyAI

✨ Funcionalidades RAG

  • Busca Híbrida: Combina busca semântica e busca por palavras-chave
  • Sugestões de Autocompletar: Oferece funcionalidade de sugestão de consulta
  • Filtragem Inteligente: Suporta filtragem por documento, tipo de documento, etc.
  • Metadados Personalizáveis: Controle total sobre as configurações de metadados
  • Ingestão Assíncrona: Ingestão de dados assíncrona para maior velocidade de processamento

🗡️ Técnicas de Fragmentação de Documentos

  • Fragmentação por Token: Fragmentação de documentos baseada em tokens
  • Fragmentação por Frase: Usa spaCy para fragmentação em nível de frase
  • Fragmentação por Parágrafo: Suporta fragmentação de documentos em nível de parágrafo

Arquitetura Técnica

Verba adota um design de arquitetura modular, dividindo o processo RAG em várias etapas modulares independentes, incluindo:

  1. ReaderManager: Recebe uma lista de strings (caminhos, URLs ou texto) e gera uma lista de documentos Verba
  2. ChunkerManager: Recebe uma lista de documentos e fragmenta o texto de cada documento em pedaços menores
  3. EmbeddingManager: Recebe uma lista de documentos e os incorpora no Weaviate

Métodos de Implantação

💻 Implantação Local

Execute localmente usando Weaviate Embedded:

pip install goldenverba
verba start

🐳 Implantação Docker

git clone https://github.com/weaviate/Verba
docker compose up -d --build

🌩️ Implantação em Nuvem

Conecte-se a uma instância do Weaviate Cloud Services (WCS)

⚙️ Implantação Personalizada

Suporta conexão a instâncias Weaviate auto-hospedadas

Fluxo de Uso

1. Configuração do Ambiente

Crie um arquivo .env para configurar as chaves API:

# Configuração OpenAI
OPENAI_API_KEY=sua_chave_openai

# Configuração Anthropic
ANTHROPIC_API_KEY=sua_chave_anthropic

# Configuração Weaviate Cloud
WEAVIATE_URL_VERBA=sua_url_weaviate
WEAVIATE_API_KEY_VERBA=sua_chave_weaviate

# Configuração Ollama Local
OLLAMA_URL=http://localhost:11434

2. Importação de Dados

  • Na interface web, selecione "Import Data"
  • Suporta a adição de arquivos, diretórios ou URLs
  • Configurações personalizadas podem ser aplicadas a cada arquivo

3. Configuração do Pipeline RAG

Na página "Config", configure:

  • Selecione o modelo de embedding
  • Selecione o modelo de geração
  • Defina a estratégia de fragmentação
  • Configure os parâmetros de recuperação

4. Iniciar Conversa

Na página "Chat":

  • Insira perguntas para obter respostas relevantes
  • Visualize fragmentos de documentos semanticamente relacionados
  • Obtenha respostas abrangentes geradas por IA

Recursos Destacados

📊 Visualização 3D de Vetores

Oferece uma interface de visualização 3D de dados vetoriais para ajudar os usuários a entender a distribuição dos dados

🎨 Frontend Personalizável

Interface de frontend totalmente personalizável, suportando a personalização da marca

🔄 Cache Semântico

Utiliza a funcionalidade de cache semântico do Weaviate, incorporando respostas e consultas geradas, garantindo que consultas repetidas sejam processadas rapidamente, verificando o cache para consultas semanticamente idênticas processadas anteriormente.

🤝 Integração de Bibliotecas RAG

  • LangChain: Pipeline RAG LangChain já suportado
  • Haystack: Suporte planejado
  • LlamaIndex: Suporte planejado

Cenários de Aplicação

  1. Gestão de Conhecimento Pessoal: Construa um sistema de consulta inteligente para sua biblioteca de documentos pessoais
  2. Recuperação de Documentos Corporativos: Ajude os funcionários a encontrar rapidamente documentos e informações corporativas relevantes
  3. Auxílio à Pesquisa: Ajude pesquisadores a analisar e consultar materiais de pesquisa
  4. Atendimento ao Cliente: Construa um sistema de atendimento ao cliente inteligente baseado na base de conhecimento da empresa
  5. Educação e Treinamento: Crie um sistema interativo de consulta de materiais de aprendizagem

Status do Projeto

Este projeto é impulsionado pela comunidade, com suporte de código aberto da Weaviate. Embora a equipe se esforce para resolver problemas rapidamente, a urgência de manutenção pode não ser tão alta quanto a de software de produção. Contribuições da comunidade são bem-vindas para ajudar a manter o projeto estável.

Requisitos Técnicos

  • Versão Python: >=3.10.0, <3.13.0
  • Sistema Operacional: Linux, macOS (Weaviate Embedded no Windows não é suportado atualmente)
  • Hardware: Depende do modelo selecionado e do volume de dados

Contribuições de Código Aberto

O projeto aceita contribuições de várias formas:

  • Melhorias de funcionalidades e correção de bugs
  • Aprimoramento da documentação
  • Sugestões de novas funcionalidades
  • Testes e feedback

Para detalhes, consulte o Guia de Contribuição e a Documentação Técnica do projeto.

Desenvolvimento Futuro

De acordo com o roteiro do projeto, as funcionalidades planejadas incluem:

  • Funcionalidades de consulta avançada (delegação de tarefas baseada em avaliação LLM)
  • Funcionalidade de reordenação (reordenação de resultados baseada no contexto)
  • Interface de avaliação RAG
  • Mais integrações de bibliotecas RAG

Verba representa a melhor implementação de práticas da tecnologia RAG, fornecendo aos usuários uma solução de consulta de documentos inteligente, poderosa e fácil de usar.

Star History Chart