Allgemeine Einführung
dsRAG ist eine hochleistungsfähige Suchmaschine, die für die Bearbeitung komplexer Anfragen zu unstrukturierten Daten entwickelt wurde. Es ist besonders leistungsfähig bei der Bearbeitung anspruchsvoller Abfragen in dichten Texten wie Finanzberichten, juristischen Dokumenten und akademischen Abhandlungen. dsRAG verwendet drei Schlüsselansätze zur Verbesserung der Leistung: semantische Segmentierung, kontextbezogene automatische Generierung und Extraktion relevanter Segmente. Mit diesen Ansätzen erreicht dsRAG eine deutlich höhere Genauigkeit als die traditionelle RAG-Basislösung bei komplexen Quizaufgaben mit offenem Buch. Darüber hinaus unterstützt dsRAG eine breite Palette von Konfigurationsoptionen, die je nach den Bedürfnissen des Benutzers angepasst werden können. Der modulare Aufbau ermöglicht es dem Benutzer, verschiedene Komponenten wie Vektordatenbanken, Einbettungsmodelle und Reorderer einfach zu integrieren, um optimale Retrieval-Ergebnisse zu erzielen.
Im Vergleich zu traditionellen RAG (Retrieval-Augmented Generation)-Baselines erreicht dsRAG deutlich höhere Genauigkeitsraten in komplexen Open-Book-Quiz-Aufgaben. Zum Beispiel erreicht dsRAG im FinanceBench-Benchmark-Test eine Genauigkeit von 96,61 TP3T, verglichen mit 321 TP3T für die traditionelle RAG-Baseline. dsRAG verbessert die Retrievalleistung durch Schlüsselmethoden wie semantische Segmentierung, automatischen Kontext und Extraktion relevanter Segmente erheblich.
Funktionsliste
- semantische SegmentierungLLM zur Segmentierung von Dokumenten verwenden, um die Auffindungsgenauigkeit zu verbessern.
- Automatische KontexterstellungGenerierung von Blocküberschriften mit Kontext auf Dokument- und Absatzebene zur Verbesserung der Einbettungsqualität.
- Extraktion relevanter SegmenteIntelligente Kombination zusammengehöriger Textblöcke bei der Abfrage, um längere Absätze zu erzeugen.
- Unterstützung mehrerer Vektordatenbanken: z.B. BasicVectorDB, WeaviateVectorDB, ChromaDB, etc.
- Unterstützung mehrerer eingebetteter Modelle: z.B. OpenAIEmbedding, CohereEmbedding, etc.
- Unterstützung mehrerer Reorder: z.B. CohereReranker, VoyageReranker, etc.
- Persistente WissensdatenbankUnterstützung für die Persistierung von Wissensbasisobjekten auf der Festplatte zum späteren Laden und Abfragen.
- Unterstützung mehrerer DokumentenformateUnterstützung für PDF, Markdown und andere Dokumentformate, wie z.B. Parsing und Verarbeitung.
Hilfe verwenden
Montage
Um das Python-Paket für dsRAG zu installieren, können Sie den folgenden Befehl ausführen:
pip install dsrag
Stellen Sie sicher, dass Sie die API-Schlüssel für OpenAI und Cohere haben und setzen Sie sie als Umgebungsvariablen.
Schnellstart
Sie können diecreate_kb_from_file
Funktion erstellt eine neue Wissensbasis direkt aus einer Datei:
from dsrag.create_kb import create_kb_from_file
dateipfad = "dsRAG/tests/data/levels_of_agi.pdf"
kb_id = "levels_of_agi"
kb = create_kb_from_file(kb_id, file_path)
Die Objekte der Wissensdatenbank werden automatisch auf der Festplatte gespeichert, so dass sie nicht explizit gespeichert werden müssen.
Jetzt können Sie sich ein besseres Bild davon machen, was mit der Website passiert.kb_id
Laden Sie die Wissensbasis und verwenden Sie dieAbfrage
Methoden werden abgefragt:
from dsrag.knowledge_base import KnowledgeBase
kb = KnowledgeBase("levels_of_agi")
search_queries = ["Was sind die Ebenen von AGI?", "Was ist die höchste Ebene von AGI?"]
results = kb.query(search_queries)
for segment in results.
print(segment)
Basis-Anpassung
Sie können die Konfiguration der Wissensdatenbank anpassen, indem Sie zum Beispiel nur OpenAI verwenden:
von dsrag.llm importieren OpenAIChatAPI
from dsrag.reranker import NoReranker
llm = OpenAIChatAPI(model='gpt-4o-mini')
reranker = NoReranker()
kb = KnowledgeBase(kb_id="levels_of_agi", reranker=reranker, auto_context_model=llm)
Dann verwenden Sieadd_document
Methode, um ein Dokument hinzuzufügen:
dateipfad = "dsRAG/tests/daten/levels_of_agi.pdf"
kb.add_document(doc_id=file_path, file_path=file_path)
bauen
Das Wissensbasisobjekt nimmt Dokumente (in Form von Rohtext) entgegen und führt Chunking und Embedding sowie andere Vorverarbeitungsoperationen an ihnen durch. Wenn eine Anfrage eingegeben wird, führt das System eine Suche in der Vektordatenbank, eine Neuordnung und eine Extraktion relevanter Segmente durch und gibt schließlich das Ergebnis zurück.
Wissensdatenbankobjekte sind standardmäßig beständig und ihre vollständige Konfiguration wird als JSON-Datei gespeichert, damit sie leicht wiederhergestellt und aktualisiert werden können.