AI Personal Learning
und praktische Anleitung
豆包Marscode1

dsRAG: eine Abfragemaschine für unstrukturierte Daten und komplexe Abfragen

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 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.


dsRAG:用于处理非结构化数据和复杂查询的高性能检索引擎-1

 

Funktionsliste

  • semantische SegmentierungLLM: Verwenden Sie LLM, um Dokumente zu segmentieren, 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_fileFunktion erstellt eine neue Wissensbasis direkt aus einer Datei:

from dsrag.create_kb import create_kb_from_file
file_path = "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_idLaden Sie die Wissensbasis und verwenden Sie diequeryMethoden werden abgefragt:

from dsrag.knowledge_base import KnowledgeBase
kb = KnowledgeBase("levels_of_agi")
search_queries = ["What are the levels of AGI?", "What is the highest level of 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:

from dsrag.llm import 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_documentMethode, um ein Dokument hinzuzufügen:

file_path = "dsRAG/tests/data/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.

Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " dsRAG: eine Abfragemaschine für unstrukturierte Daten und komplexe Abfragen
de_DEDeutsch