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.
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:
- ReaderManager: Recebe uma lista de strings (caminhos, URLs ou texto) e gera uma lista de documentos Verba
- ChunkerManager: Recebe uma lista de documentos e fragmenta o texto de cada documento em pedaços menores
- 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
- Gestão de Conhecimento Pessoal: Construa um sistema de consulta inteligente para sua biblioteca de documentos pessoais
- Recuperação de Documentos Corporativos: Ajude os funcionários a encontrar rapidamente documentos e informações corporativas relevantes
- Auxílio à Pesquisa: Ajude pesquisadores a analisar e consultar materiais de pesquisa
- Atendimento ao Cliente: Construa um sistema de atendimento ao cliente inteligente baseado na base de conhecimento da empresa
- 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.