Kotaemon - Open-Source RAG Dokumenten-Intelligenz-Fragetool
Projektübersicht
Kotaemon ist ein Open-Source-RAG-Tool (Retrieval-Augmented Generation), das speziell für die dialogorientierte Interaktion mit Dokumenten entwickelt wurde. Das Projekt zielt darauf ab, Endbenutzern und Entwicklern eine voll funktionsfähige RAG-Benutzeroberfläche bereitzustellen, die sowohl die Bedürfnisse der Benutzer nach Fragen und Antworten zu Dokumenten erfüllt als auch Entwicklern beim Aufbau ihrer eigenen RAG-Pipelines hilft.
Kernfunktionen
Endbenutzerfunktionen
- Schlichte und ansprechende UI-Oberfläche: Bietet eine benutzerfreundliche RAG-Frage-Antwort-Oberfläche
- Unterstützung verschiedener LLMs: Kompatibel mit verschiedenen LLM-API-Anbietern (OpenAI, AzureOpenAI, Cohere usw.) und lokalen LLMs (über ollama und llama-cpp-python)
- Einfache Installation: Bietet einfache Skripte für einen schnellen Start
- Mehrbenutzerunterstützung: Unterstützt die Anmeldung mehrerer Benutzer, die private/öffentliche Dokumentsammlungen erstellen können und Zusammenarbeit und Freigabe unterstützen
Entwicklerfunktionen
- RAG-Pipeline-Framework: Bietet Tools zum Aufbau von RAG-Dokumenten-Frage-Antwort-Pipelines
- Anpassbare UI: Basiert auf Gradio, um die tatsächlichen Auswirkungen der RAG-Pipeline zu sehen
- Hybride RAG-Pipeline: Verwendet hybride (Volltext- und Vektor-)Retrievers und Neusortierung, um eine optimale Retrieval-Qualität zu gewährleisten
- Erweiterbarkeit: Unterstützt benutzerdefinierte UI-Elemente und verschiedene Dokumentenindexierungs- und Retrieval-Strategien
Erweiterte Funktionen
- Unterstützung für multimodale Fragen und Antworten: Unterstützt Fragen und Antworten zu mehreren Dokumenten, die Diagramme und Tabellen enthalten, und unterstützt die Analyse multimodaler Dokumente
- Erweiterte Referenzierungsfunktionen: Bietet detaillierte Referenzinformationen, um die Korrektheit der LLM-Antworten sicherzustellen, und ermöglicht die direkte Anzeige von hervorgehobenen Referenzinhalten im Browser-PDF-Viewer
- Komplexe Inferenzmethoden: Unterstützt die Zerlegung von Fragen zur Beantwortung komplexer/mehrstufiger Fragen, unterstützt Agent-basierte Inferenz, wie z. B. ReAct, ReWOO usw.
- Konfigurierbare Einstellungs-Oberfläche: Ermöglicht die Anpassung wichtiger Aspekte des Retrieval- und Generierungsprozesses (einschließlich Prompts) auf der UI
Technische Architektur
Unterstützte Dokumentformate
- PDF, HTML, MHTML, XLSX
- Unterstützt weitere Formate (z. B. .doc, .docx) über die Unstructured-Bibliothek
Datenspeicheroptionen
- Dokumentspeicher: Elasticsearch, LanceDB, SimpleFileDocumentStore
- Vektorspeicher: ChromaDB, LanceDB, InMemory, Milvus, Qdrant
LLM-Modellunterstützung
- API-Anbieter: OpenAI, Azure OpenAI, Cohere, Groq usw.
- Lokale Modelle: Unterstützt GGUF-Formatmodelle über Ollama und llama-cpp-python
GraphRAG-Integration
Das Projekt unterstützt zwei GraphRAG-Implementierungen:
NanoGraphRAG (Empfohlen)
- Direktere Kotaemon-Integration
- Automatische Erkennung von Standard-LLM- und Einbettungsmodellen
MS GraphRAG
- Offizielle Microsoft GraphRAG-Implementierung
- Unterstützt nur OpenAI- oder Ollama-APIs
- Unterstützt lokale Modelle und benutzerdefinierte Einstellungen
Installation und Bereitstellung
Docker-Bereitstellung (Empfohlen)
Bietet schlanke und vollständige Docker-Images:
- Schlanke Version: Unterstützt grundlegende Dateitypen, kleineres Image
- Vollständige Version: Enthält das Unstructured-Paket, unterstützt mehr Dateitypen
Lokale Installation
- Laden Sie die neueste Version der Release-Datei herunter
- Konfigurieren Sie die .env-Datei
- Führen Sie
python app.pyaus, um den Dienst zu starten - Standardbenutzername und -passwort sind
admin
Anpassung und Erweiterung
Benutzerdefinierte Inferenz-Pipeline
- Neue .py-Implementierungen können in
libs/ktem/ktem/reasoning/hinzugefügt werden - Aktivieren Sie neue Inferenz-Pipelines über flowsettings
Benutzerdefinierte Index-Pipeline
- Beachten Sie die Beispielimplementierung in
libs/ktem/ktem/index/file/graph - Unterstützt GraphRAG-Index-Pipelines
Konfigurationsdateien
- flowsettings.py: Anwendungskonfiguration
- .env: Modell- und Anmeldeinformationenkonfiguration
Anwendungsfälle
- Enterprise Knowledge Management: Aufbau eines internen Dokumenten-Frage-Antwort-Systems
- Akademische Forschung: Intelligente Fragen und Antworten zu Forschungsdokumenten
- Analyse juristischer Dokumente: Schnelles Abrufen und Analysieren juristischer Dokumente
- Technische Dokumentationsunterstützung: Bereitstellung intelligenter Abfragen für technische Dokumente für Benutzer
- Persönliche Wissensdatenbank: Verwalten und Abfragen persönlicher Dokumentsammlungen
Projektvorteile
- Open Source und kostenlos: Vollständig Open Source, frei verwendbar und modifizierbar
- Vollständige Funktionalität: Umfassende Funktionsabdeckung von einfachen Fragen und Antworten bis hin zu komplexen Schlussfolgerungen
- Einfache Bedienung: Intuitive Web-Oberfläche, die ohne technischen Hintergrund verwendet werden kann
- Hohe Anpassbarkeit: Unterstützt verschiedene Konfigurations- und Erweiterungsoptionen
- Aktive Community: Kontinuierliche Updates und Community-Support
Technische Merkmale
- Entwickelt in Python
- Verwendet Gradio zum Erstellen der Web-Oberfläche
- Unterstützt die containerisierte Docker-Bereitstellung
- Modularer Architekturansatz
- Unterstützt GPU-Beschleunigung (lokale Modelle)
Zusammenfassung
Kotaemon ist ein leistungsstarkes RAG-UI-Tool, mit dem Benutzer über Dialoge mit Dokumenten interagieren können. Es bietet nicht nur Endbenutzern eine einfach zu bedienende Dokumenten-Frage-Antwort-Oberfläche, sondern bietet Entwicklern auch ein vollständiges Framework zum Erstellen benutzerdefinierter RAG-Systeme. Durch hybride Retrieval, multimodale Unterstützung, erweiterte Referenzierung und andere Funktionen bietet Kotaemon eine umfassende und professionelle Lösung im Bereich der intelligenten Dokumenten-Frage-Antwort.