Ein Open-Source Retrieval-Augmented Generation (RAG) Chatbot basierend auf Weaviate, der eine End-to-End-, flüssige und benutzerfreundliche RAG-Lösung bietet.

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

Detaillierte Vorstellung des Verba-Projekts

Projektübersicht

Verba ist eine von Weaviate entwickelte Open-Source-Anwendung für Retrieval Augmented Generation (RAG), bekannt als "The Golden RAGtriever". Sie bietet eine durchgängige, flüssige und benutzerfreundliche RAG-Lösung, mit der Benutzer Datensätze in einfachen Schritten erkunden und Erkenntnisse gewinnen können, sei es lokal mit Ollama und Huggingface oder über LLM-Anbieter wie Anthropic, Cohere und OpenAI.

Kernfunktionen

🤖 Modellunterstützung

  • Lokale Modelle: Unterstützt Ollama (z.B. Llama3) und HuggingFace-Modelle
  • Cloud-Modelle: Integriert führende KI-Dienstleister wie OpenAI, Anthropic, Cohere, Groq, Novita AI, Upstage
  • Embedding-Modelle: Unterstützt verschiedene Embedding-Modelle, darunter Weaviate, SentenceTransformers, VoyageAI usw.

📁 Datenunterstützung

  • Dateitypen: Unterstützt verschiedene Formate wie .txt, .md, .pdf, .csv, .docx, .pptx
  • Datenquellen: Daten können aus dem lokalen Dateisystem, GitHub-Repositories, URLs usw. importiert werden
  • Spezialfunktionen:
    • Web-Crawling über Firecrawl
    • Dokumentenanalyse über UpstageDocumentParse
    • Audioverarbeitung über AssemblyAI

✨ RAG-Funktionen

  • Hybride Suche: Kombiniert semantische Suche und Stichwortsuche
  • Autovervollständigungsvorschläge: Bietet Vorschläge für Abfragen
  • Intelligente Filterung: Unterstützt Filterung nach Dokument, Dokumenttyp usw.
  • Anpassbare Metadaten: Volle Kontrolle über Metadaten-Einstellungen
  • Asynchrone Datenaufnahme: Asynchrone Datenaufnahme zur Beschleunigung der Verarbeitung

🗡️ Dokumenten-Chunking-Techniken

  • Token-basiertes Chunking: Dokumenten-Chunking basierend auf Tokens
  • Satz-basiertes Chunking: Verwendung von spaCy für Chunking auf Satzebene
  • Absatz-basiertes Chunking: Unterstützt Dokumenten-Chunking auf Absatzebene

Technische Architektur

Verba verwendet ein modulares Architekturdesign, das den RAG-Prozess in mehrere unabhängige, modulare Schritte unterteilt, darunter:

  1. ReaderManager: Empfängt eine Liste von Strings (Pfade, URLs oder Text) und gibt eine Liste von Verba-Dokumenten aus
  2. ChunkerManager: Empfängt eine Liste von Dokumenten und zerlegt den Text jedes Dokuments in kleinere Fragmente
  3. EmbeddingManager: Empfängt eine Liste von Dokumenten und bettet diese in Weaviate ein

Bereitstellungsmethoden

💻 Lokale Bereitstellung

Lokal mit Weaviate Embedded ausführen:

pip install goldenverba
verba start

🐳 Docker-Bereitstellung

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

🌩️ Cloud-Bereitstellung

Verbindung zu einer Weaviate Cloud Services (WCS)-Instanz

⚙️ Benutzerdefinierte Bereitstellung

Unterstützt die Verbindung zu einer selbst gehosteten Weaviate-Instanz

Nutzungsprozess

1. Umgebungskonfiguration

Erstellen Sie eine .env-Datei zur Konfiguration der API-Schlüssel:

# OpenAI-Konfiguration
OPENAI_API_KEY=your_openai_key

# Anthropic-Konfiguration  
ANTHROPIC_API_KEY=your_anthropic_key

# Weaviate Cloud-Konfiguration
WEAVIATE_URL_VERBA=your_weaviate_url
WEAVIATE_API_KEY_VERBA=your_weaviate_key

# Ollama lokale Konfiguration
OLLAMA_URL=http://localhost:11434

2. Datenimport

  • Wählen Sie über die Weboberfläche "Import Data"
  • Unterstützt das Hinzufügen von Dateien, Verzeichnissen oder URLs
  • Individuelle Konfiguration für jede Datei möglich

3. RAG-Pipeline konfigurieren

Auf der Seite "Config" konfigurieren:

  • Embedding-Modell auswählen
  • Generierungsmodell auswählen
  • Chunking-Strategie festlegen
  • Abrufparameter konfigurieren

4. Konversation starten

Auf der Seite "Chat":

  • Fragen eingeben, um relevante Antworten zu erhalten
  • Semantisch relevante Dokumentenfragmente anzeigen
  • KI-generierte, zusammenfassende Antworten erhalten

Besondere Funktionen

📊 3D-Vektordatenvisualisierung

Bietet eine 3D-Visualisierungsoberfläche für Vektordaten, um Benutzern das Verständnis der Datenverteilung zu erleichtern

🎨 Anpassbares Frontend

Vollständig anpassbare Frontend-Oberfläche, unterstützt Markenanpassung

🔄 Semantisches Caching

Nutzt die semantische Caching-Funktion von Weaviate, um generierte Antworten und Abfragen einzubetten und sicherzustellen, dass wiederholte Abfragen schnell verarbeitet werden, indem der Cache auf zuvor verarbeitete, semantisch identische Abfragen überprüft wird.

🤝 RAG-Bibliotheksintegration

  • LangChain: LangChain RAG-Pipelines werden bereits unterstützt
  • Haystack: Geplante Unterstützung
  • LlamaIndex: Geplante Unterstützung

Anwendungsfälle

  1. Persönliches Wissensmanagement: Aufbau eines intelligenten Abfragesystems für die persönliche Dokumentenbibliothek
  2. Dokumentenabruf im Unternehmen: Unterstützung von Mitarbeitern beim schnellen Auffinden relevanter Unternehmensdokumente und Informationen
  3. Forschungsunterstützung: Unterstützung von Forschern bei der Analyse und Abfrage von Forschungsmaterialien
  4. Kundenservice: Aufbau eines intelligenten Kundenservicesystems basierend auf der Unternehmenswissensdatenbank
  5. Bildung und Training: Erstellung eines interaktiven Abfragesystems für Lernmaterialien

Projektstatus

Das Projekt ist Community-gesteuert, Weaviate bietet Open-Source-Unterstützung. Obwohl das Team bestrebt ist, Probleme schnell zu beheben, ist die Dringlichkeit der Wartung möglicherweise nicht so hoch wie bei Produktionssoftware. Community-Beiträge sind willkommen, um das Projekt stabil zu halten.

Technische Anforderungen

  • Python-Version: >=3.10.0, <3.13.0
  • Betriebssystem: Linux, macOS (Weaviate Embedded unter Windows wird derzeit nicht unterstützt)
  • Hardware: Abhängig vom gewählten Modell und der Datenmenge

Open-Source-Beiträge

Das Projekt begrüßt Beiträge in allen Formen:

  • Funktionsverbesserungen und Fehlerbehebungen
  • Dokumentationsverbesserungen
  • Vorschläge für neue Funktionen
  • Tests und Feedback

Detaillierte Informationen finden Sie in den Beitragsrichtlinien und der technischen Dokumentation des Projekts.

Zukünftige Entwicklung

Gemäß der Projekt-Roadmap umfassen die geplanten Funktionen:

  • Erweiterte Abfragefunktionen (aufgabenbasierte Delegation basierend auf LLM-Bewertung)
  • Neuanordnungsfunktionen (kontextbasierte Neuanordnung von Ergebnissen)
  • RAG-Bewertungsoberfläche
  • Weitere RAG-Bibliotheksintegrationen

Verba repräsentiert die Best Practices der RAG-Technologie und bietet Benutzern eine leistungsstarke, benutzerfreundliche Lösung für die intelligente Dokumentenabfrage.

Star History Chart