An open-source Retrieval Augmented Generation (RAG) chatbot built on Weaviate, providing an end-to-end, seamless, and user-friendly RAG solution.

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

Verba Project: A Detailed Overview

Project Overview

Verba is an open-source Retrieval Augmented Generation (RAG) application developed by Weaviate, affectionately known as "The Golden RAGtriever." It offers an end-to-end, seamless, and user-friendly RAG solution, enabling users to explore datasets and extract insights through simple steps, whether utilizing local models like Ollama and Huggingface or connecting to LLM providers such as Anthropic, Cohere, and OpenAI.

Core Features

🤖 Model Support

  • Local Models: Supports Ollama (e.g., Llama3) and HuggingFace models
  • Cloud Models: Integrates with major AI service providers like OpenAI, Anthropic, Cohere, Groq, Novita AI, and Upstage
  • Embedding Models: Supports various embedding models, including Weaviate, SentenceTransformers, VoyageAI, and others

📁 Data Support

  • File Types: Supports multiple formats such as .txt, .md, .pdf, .csv, .docx, .pptx
  • Data Sources: Data can be imported from local file systems, GitHub repositories, URLs, and more
  • Special Features:
    • Web scraping via Firecrawl
    • Document parsing via UpstageDocumentParse
    • Audio file processing via AssemblyAI

✨ RAG Functionality Features

  • Hybrid Search: Combines semantic search with keyword search
  • Autocompletion Suggestions: Provides query suggestion functionality
  • Smart Filtering: Supports filtering by document, document type, etc.
  • Customizable Metadata: Full control over metadata settings
  • Asynchronous Ingestion: Asynchronous data ingestion for improved processing speed

🗡️ Document Chunking Techniques

  • Token Chunking: Document chunking based on tokens
  • Sentence Chunking: Sentence-level chunking using spaCy
  • Paragraph Chunking: Supports paragraph-level document chunking

Technical Architecture

Verba adopts a modular architectural design, breaking down the RAG process into several independent, modular steps, including:

  1. ReaderManager: Receives a list of strings (paths, URLs, or text) and outputs a list of Verba documents
  2. ChunkerManager: Receives a list of documents and chunks each document's text into smaller fragments
  3. EmbeddingManager: Receives a list of documents and embeds them into Weaviate

Deployment Methods

💻 Local Deployment

Run locally using Weaviate Embedded:

pip install goldenverba
verba start

🐳 Docker Deployment

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

🌩️ Cloud Deployment

Connect to a Weaviate Cloud Services (WCS) instance

⚙️ Custom Deployment

Supports connecting to a self-hosted Weaviate instance

Usage Workflow

1. Environment Configuration

Create a .env file to configure API keys:

# OpenAI Configuration
OPENAI_API_KEY=your_openai_key

# Anthropic Configuration  
ANTHROPIC_API_KEY=your_anthropic_key

# Weaviate Cloud Configuration
WEAVIATE_URL_VERBA=your_weaviate_url
WEAVIATE_API_KEY_VERBA=your_weaviate_key

# Ollama Local Configuration
OLLAMA_URL=http://localhost:11434

2. Data Import

  • Select "Import Data" via the web interface
  • Supports adding files, directories, or URLs
  • Individual configuration options available for each file

3. Configure RAG Pipeline

Configure on the "Config" page:

  • Select embedding model
  • Select generation model
  • Set chunking strategy
  • Configure retrieval parameters

4. Start Conversation

On the "Chat" page:

  • Enter questions to get relevant answers
  • View semantically relevant document snippets
  • Receive AI-generated comprehensive answers

Special Features

📊 3D Vector Visualization

Provides a 3D visualization interface for vector data, helping users understand data distribution

🎨 Customizable Frontend

Fully customizable frontend interface, supporting brand customization

🔄 Semantic Caching

Leverages Weaviate's semantic caching feature to embed generated responses and queries, ensuring that repeated queries are processed quickly by checking the cache for previously handled semantically identical queries.

🤝 RAG Library Integration

  • LangChain: LangChain RAG pipeline already supported
  • Haystack: Planned support
  • LlamaIndex: Planned support

Application Scenarios

  1. Personal Knowledge Management: Building an intelligent query system for personal document libraries
  2. Enterprise Document Retrieval: Helping employees quickly find relevant corporate documents and information
  3. Research Assistance: Assisting researchers in analyzing and querying research materials
  4. Customer Service: Building an intelligent customer service system based on an enterprise knowledge base
  5. Education and Training: Creating interactive learning material query systems

Project Status

This project is community-driven, with open-source support provided by Weaviate. While the team strives to address issues quickly, maintenance urgency may not be as high as for production software. Community contributions are welcome to help stabilize the project.

Technical Requirements

  • Python Version: >=3.10.0, <3.13.0
  • Operating System: Linux, macOS (Weaviate Embedded is not currently supported on Windows)
  • Hardware: Depends on the chosen model and data volume

Open Source Contributions

The project welcomes contributions in various forms:

  • Feature enhancements and bug fixes
  • Documentation improvements
  • New feature suggestions
  • Testing and feedback

For more details, please refer to the project's Contribution Guide and Technical Documentation.

Future Development

According to the project roadmap, planned features include:

  • Advanced query capabilities (LLM-evaluated task delegation)
  • Reranking functionality (context-based result reranking)
  • RAG evaluation interface
  • More RAG library integrations

Verba represents a best-practice implementation of RAG technology, offering users a powerful and easy-to-use intelligent document querying solution.

Star History Chart