Ein Open-Source Retrieval-Augmented Generation (RAG) Chatbot basierend auf Weaviate, der eine End-to-End-, flüssige und benutzerfreundliche RAG-Lösung bietet.
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:
- ReaderManager: Empfängt eine Liste von Strings (Pfade, URLs oder Text) und gibt eine Liste von Verba-Dokumenten aus
- ChunkerManager: Empfängt eine Liste von Dokumenten und zerlegt den Text jedes Dokuments in kleinere Fragmente
- 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
- Persönliches Wissensmanagement: Aufbau eines intelligenten Abfragesystems für die persönliche Dokumentenbibliothek
- Dokumentenabruf im Unternehmen: Unterstützung von Mitarbeitern beim schnellen Auffinden relevanter Unternehmensdokumente und Informationen
- Forschungsunterstützung: Unterstützung von Forschern bei der Analyse und Abfrage von Forschungsmaterialien
- Kundenservice: Aufbau eines intelligenten Kundenservicesystems basierend auf der Unternehmenswissensdatenbank
- 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.