Allgemeine Einführung
NodeRAG ist ein quelloffenes Retrieval Augmented Generation (RAG)-System, das auf GitHub gehostet wird und von Terry-Xu-666 entwickelt wurde. Es optimiert die Informationssuche und -generierung durch heterogene Graphenstrukturen, um die Suchgenauigkeit und kontextuelle Relevanz deutlich zu verbessern. Es optimiert die Informationssuche und -generierung durch heterogene Graphenstrukturen, um die Suchgenauigkeit und Kontextrelevanz deutlich zu verbessern. NodeRAG unterstützt die lokale Bereitstellung und bietet benutzerfreundliche Schnittstellen und Visualisierungswerkzeuge für die akademische Forschung, das Wissensmanagement und die Datenanalyse. Die erste stabile Version des Projekts (v0.1.0) wird im März 2025 veröffentlicht und kann über PyPI installiert werden. Die offizielle Dokumentation ist ausführlich, und die Community ist aktiv und auf dem neuesten Stand. Im Vergleich zu herkömmlichen RAG-Systemen bietet NodeRAG bessere Leistungen in Bezug auf Multi-Hop-Inferenz, Abrufgeschwindigkeit und Speichereffizienz und ist besonders für die Verarbeitung komplexer Datensätze geeignet.
Funktionsliste
- Heterogene Graphenstruktur: unterstützt mehrere Knotentypen (z. B. Dokumente, Entitäten, Schlüsselwörter), um die Abfragegenauigkeit zu verbessern.
- Präzise Suche: Multi-Hop-Reasoning und kontextbezogene Abfragen werden durch Graphenzerlegung, -erweiterung, -anreicherung und -suche unterstützt.
- Datenvisualisierung: Bietet eine interaktive grafische Strukturvisualisierung zum einfachen Verständnis komplexer Datenbeziehungen.
- Lokale Bereitstellungsschnittstelle: Unterstützt den lokalen Betrieb und bietet eine intuitive Benutzerinteraktion.
- Plattformübergreifende Installation: Unterstützung von Conda-, Docker- und PyPI-Installation, kompatibel mit mehreren Umgebungen.
- Inkrementelle Aktualisierung: Unterstützt die dynamische Aktualisierung der Graphenstruktur, ohne die gesamte Graphdatenbank neu aufzubauen.
- Leistungsstarke Optimierung: schnelle Indizierung und Abfrage für die Verarbeitung großer Datenmengen.
- Offene Dokumentation: Ausführliche Tutorials, Beispielcode und wissenschaftliche Arbeiten erleichtern das Lernen.
Hilfe verwenden
Einbauverfahren
NodeRAG unterstützt eine Vielzahl von Installationsmethoden. Im Folgenden werden die Schritte für die Installation über Conda und PyPI beschrieben. Stellen Sie sicher, dass Python 3.10 oder höher auf Ihrem System installiert ist.
1. die Installation über Conda
- Erstellen einer virtuellen Umgebung
Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus, um eine Conda-Umgebung zu erstellen und zu aktivieren:conda create -n NodeRAG python=3.10 conda activate NodeRAG
- Codebasis klonen (optional)
Wenn Sie den Quellcode oder eine Entwicklungsversion benötigen, können Sie ihn von GitHub klonen:git clone https://github.com/Terry-Xu-666/NodeRAG.git cd NodeRAG
- Installation von Abhängigkeiten
Führen Sie im Projektverzeichnis den folgenden Befehl aus, um die Abhängigkeiten zu installieren:pip install -r requirements.txt
Zu den Abhängigkeiten gehören
networkx
(Abbildung Betrieb),numpy
(numerische Berechnungen),flask
(Web-Schnittstelle), etc. - Installation von NodeRAG
Wenn Sie die Codebasis nicht geklont haben, können Sie sie direkt von PyPI installieren:pip install NodeRAG
- Ausführen der lokalen Schnittstelle
Führen Sie den folgenden Befehl aus, um die lokale Webschnittstelle zu starten:python -m NodeRAG.app
Öffnen Sie Ihren Browser und besuchen Sie
http://localhost:5000
Die NodeRAG-Schnittstelle ist zugänglich.
2. beschleunigte Installation mittels UV (optional)
Um die Geschwindigkeit der Installation zu erhöhen, verwenden Sie die uv
Werkzeuge:
- Montage
uv
::pip install uv
- ausnutzen
uv
Installieren Sie NodeRAG:uv pip install NodeRAG
3. die Überprüfung der Installation
Nach dem Start der Schnittstelle laden Sie den offiziell zur Verfügung gestellten Beispieldatensatz (zu finden in der Datei data/sample
Katalog oder Online-Dokumentation), überprüfen Sie, ob die Diagrammdarstellung korrekt angezeigt wird. Wenn Sie Probleme haben, lesen Sie bitte die offizielle FAQ.
Verwendung der Hauptfunktionen
Der Kern von NodeRAG liegt in der Konstruktion, dem Abruf und der Erzeugung von heterogenen Graphen. Im Folgenden wird der Arbeitsprozess im Detail beschrieben.
1. heterogene Karten konstruieren
NodeRAG verwendet heterogene Graphen zur Speicherung von Daten, und zu den Knotentypen gehören Dokumente, Entitäten, Schlüsselwörter usw. Die Benutzer müssen Daten im JSON- oder CSV-Format vorbereiten, die Text und Metadaten (z. B. Titel, Autor) enthalten. Schritte:
- Melden Sie sich bei der Webschnittstelle an und klicken Sie auf "Datenimport".
- Wählen Sie die Datendatei aus und legen Sie den Knotentyp (z.B. "Dokument") und die Kantenbeziehung (z.B. "Dokument-Schlüsselwort") fest.
- Klicken Sie auf "Diagramm erstellen", das System erstellt die Diagrammstruktur und speichert sie in der lokalen Datenbank.
Beispiel: Importieren Sie einen Datensatz mit akademischen Arbeiten, das System extrahiert Titel, Autoren und Schlüsselwörter und erstellt einen Wissensgraphen.
2. exekutive Informationsbeschaffung
Die Abfrage von NodeRAG basiert auf einem Graphen-Suchalgorithmus und unterstützt Multi-Hop-Reasoning. Arbeitsschritte:
- Geben Sie eine Suchanfrage in die Schnittstelle ein, z. B. "Deep Learning im Gesundheitswesen".
- Wählen Sie die Suchtiefe (2-3 Hops empfohlen) und klicken Sie auf "Suchen".
- Das System liefert relevante Knoten, Kanten und Pfade, die kontextuelle Beziehungen aufzeigen.
- Die Ergebnisse werden in Form von Listen und Diagrammen dargestellt, und die Benutzer können auf die Knoten klicken, um Details anzuzeigen.
Die Suche unterstützt komplexe Abfragen wie Kombinationen mehrerer Kriterien oder feldübergreifende Suchen.
3. die Erstellung von Inhalten
NodeRAG generiert kontextbezogene Antworten in Verbindung mit dem Großen Modell. Operative Schritte:
- Klicken Sie auf dem Bildschirm mit den Suchergebnissen auf "Antwort generieren".
- Das System generiert Text auf der Grundlage der abgerufenen Knoten, indem es das große Modell aufruft.
- Vom Benutzer einstellbare Parameter (z.B.
temperature
undmax_tokens
) steuert den Ausgabestil.
Beispiel: Die Abfrage "Recent advances in quantum computing" (Jüngste Fortschritte im Quantencomputing) erzeugt eine Antwort, die die jüngsten Forschungsentwicklungen enthält.
4. die Visualisierung der Daten
NodeRAG bietet interaktive Werkzeuge zur Visualisierung von Graphen, die den Benutzern bei der visuellen Analyse von Datenbeziehungen helfen. Arbeitsschritte:
- Wählen Sie in der Schnittstelle "Graph Visualisation".
- Das System zeigt die Knoten und Kanten des Graphen an und unterstützt das Zoomen, Ziehen und Filtern.
- Klicken Sie auf einen Knoten, um die Attribute (z. B. den Textinhalt) zu sehen, und klicken Sie auf eine Kante, um den Beziehungstyp zu sehen.
Diese Funktion eignet sich für die Erkundung komplexer Datensätze wie Wissensgraphen und soziale Netzwerke.
5. inkrementelle Aktualisierung
NodeRAG unterstützt die dynamische Aktualisierung der Graphenstruktur, ohne den gesamten Graphen neu aufzubauen. Arbeitsschritte:
- Wählen Sie auf dem Bildschirm "Inkrementelle Aktualisierung".
- Laden Sie neue Datendateien hoch, und das System integriert sie automatisch in die bestehende Diagrammstruktur.
- Führen Sie die Abfrage nach der Aktualisierung erneut aus, um die Ergebnisse zu überprüfen.
Diese Funktion eignet sich für Szenarien mit kontinuierlicher Aktualisierung, wie z. B. Nachrichtendatenbanken oder Dokumentensammlungen von Unternehmen.
6. benutzerdefinierte Konfiguration
Fortgeschrittene Benutzer können die config.yaml
Die Datei passt die Struktur des Graphen und die Parameter des Algorithmus an, z. B. die Knotengewichte, die Kantentypen und die Abruftiefe. Führen Sie nach der Änderung den folgenden Befehl aus, um die Datei neu zu laden:
python -m NodeRAG.reload_config
Featured Function Bedienung
Die heterogene Graphenstruktur von NodeRAG ist seine Hauptstärke, denn sie optimiert die Suche und die Erstellung durch die folgenden vier Schritte:
- grafische Zerlegung Komplexe Abfragen in Teilaufgaben aufteilen und diese verschiedenen Knotentypen zuordnen.
- grafische Aufwertung Komplementäre implizite Beziehungen zwischen Knoten zur Verbesserung der kontextuellen Integrität.
- Chart-Anreicherung Integration von externem Wissen (z. B. öffentlich verfügbare Datensätze) in den Graphen.
- Bildsuche Effiziente Algorithmen zum schnellen Auffinden relevanter Knotenpunkte.
Betriebsverfahren: - Aktivieren Sie "Graph Enhancement" oder "Graph Enrichment" in den "Advanced Settings" der Schnittstelle.
- Nach Eingabe einer Abfrage wendet das System diese Schritte automatisch an, um genauere Ergebnisse zu erzielen.
Diese Eigenschaften verbessern das Multi-Hop-Reasoning erheblich und sind für die Analyse komplexer Probleme geeignet.
Häufig gestellte Fragen
- Installationsfehler Überprüfen Sie die Python-Version (3.10+ erforderlich) und die Netzwerkverbindung. Verwenden Sie eine inländische Spiegelquelle, um die Installation zu beschleunigen:
pip install NodeRAG -i https://pypi.tuna.tsinghua.edu.cn/simple
- Die Schnittstelle ist unzugänglich Bestätigung
NodeRAG.app
läuft, prüfen Sie, ob Port 5000 belegt ist. - Ungenaue Suchergebnisse Optimieren Sie die Eingabedaten (stellen Sie sicher, dass die Metadaten vollständig sind), oder erhöhen Sie die Suchtiefe.
- Große Probleme bei der Modellintegration : in
config.yaml
Die Modell-API oder der lokale Modellpfad ist korrekt konfiguriert in der
Weitere Fragen können in der offiziellen Dokumentation nachgelesen werden:NodeRAG_web.
zusätzlicher Hinweis
- Vorbereitung der Daten Eingabedaten sollten strukturiert sein, empfohlen wird das JSON-Format, das Folgendes enthält
content
(Text) undmetadata
(Metadaten)-Feld. - Leistungsoptimierung NodeRAG verwendet einen einheitlichen Algorithmus und Indizierungsmechanismus, und die Antwortzeiten auf Abfragen liegen in der Regel im Sekundenbereich, selbst bei großen Datenbeständen.
- Unterstützung der Gemeinschaft Das GitHub-Repository bietet eine Issues-Seite, auf der Benutzer Probleme einreichen oder an Diskussionen teilnehmen können.
Anwendungsszenario
- akademische Forschung
Forscher können NodeRAG verwenden, um die Literaturdaten zu organisieren und ein Beziehungsdiagramm für Dissertationen zu erstellen. Nach dem Import des Dissertationsdatensatzes extrahiert das System Schlüsselwörter, Autoren und Zitationsbeziehungen, um einen Wissensgraphen zu erstellen. Die Benutzer können das Forschungsthema abfragen und erhalten verwandte Literatur und Kontextanalysen, die sich für die Literaturübersicht oder die Themenplanung eignen. - Wissensmanagement im Unternehmen
Unternehmen können NodeRAG zur Verwaltung interner Dokumente und zum Aufbau einer Wissensdatenbank nutzen. Nach dem Import von technischen Dokumenten und Projektberichten erstellt das System ein Dokument-Beziehungsdiagramm. Die Mitarbeiter können schnell nach Informationen suchen und die Effizienz des Wissensaustauschs verbessern, was sich für technische Teams oder abteilungsübergreifende Zusammenarbeit eignet. - Datenanalyse und -visualisierung
Datenanalysten können mit NodeRAG komplexe Datensätze wie soziale Netzwerke oder Kundenbeziehungsdaten analysieren. Das System hilft dabei, verborgene Muster zu entdecken, indem es Datenverbindungen durch Graphen visualisiert, und eignet sich für Marktanalysen, Risikobewertungen oder die Entwicklung von Empfehlungssystemen. - Informationsverarbeitung in Echtzeit
Die inkrementelle Aktualisierungsfunktion von NodeRAG eignet sich für die Verarbeitung dynamischer Daten, z. B. von Nachrichten oder Social-Media-Inhalten. Die Nutzer können kontinuierlich neue Daten importieren und das System aktualisiert automatisch die Graphenstruktur, um die Suchergebnisse aktuell zu halten.
QA
- Welche Datenformate werden von NodeRAG unterstützt?
Die Formate JSON, CSV und TXT werden unterstützt. JSON wird empfohlen und erfordert die Einbeziehung voncontent
(Text) undmetadata
(z. B. Autor, Datum). - Wie lässt sich die Suchgenauigkeit verbessern?
Stellen Sie sicher, dass die Daten reichhaltige Metainformationen enthalten, ermöglichen Sie eine Graphenerweiterung oder -anreicherung und erhöhen Sie gegebenenfalls die Suchtiefe (2-3 Sprünge). - Unterstützt NodeRAG Live-Updates?
Unterstützt inkrementelle Aktualisierungen: Benutzer können neue Daten hochladen, um die Graphenstruktur dynamisch zu aktualisieren, ohne den gesamten Graphen neu zu erstellen. - Ist Unterstützung für große Modelle erforderlich?
NodeRAG kann in Modelle wie LLaMA, GPT, etc. integriert werden. Erfordert die Verwendung desconfig.yaml
Konfigurieren Sie Modell-APIs oder lokale Pfade in der - Wie kann ich Leistungsvergleiche einsehen?
Die offizielle Dokumentation enthält Leistungsvergleichstabellen, die die Vorteile von NodeRAG in Bezug auf Abrufqualität und -geschwindigkeit aufzeigen, siehe NodeRAG_web.