HN veröffentlicht: FastGraphRAG – verbesserte RAG-Technik mit traditionellem PageRank
(github.com/circlemind-ai)Optimiertes und promptfähiges Fast-GraphRAG-Framework
- Interpretierbares und debugbares Wissen: Graphen bieten eine für Menschen erkundbare Sicht auf Wissen und können abgefragt, visualisiert und aktualisiert werden
- Schnell, günstig und effizient: Für den Einsatz im großen Maßstab konzipiert und mit geringen Ressourcen- und Kostenanforderungen
- Dynamische Daten: Erstellt und verbessert Graphen automatisch entsprechend den Anforderungen von Domäne und Ontologie
- Inkrementelle Updates: Unterstützt Echtzeit-Updates, während sich die Daten weiterentwickeln
- Intelligente Navigation: Nutzt graphbasierte Navigation auf Grundlage von PageRank, um Genauigkeit und Zuverlässigkeit zu erhöhen
- Asynchrone Ausführung und Typsupport: Vollständige Unterstützung für Asynchronität und Typen für robuste und vorhersagbare Workflows
Installation
-
Installation über PyPi (empfohlen)
pip install fast-graphrag -
Installation aus dem Quellcode
# Zuerst dieses Repository klonen cd fast_graphrag poetry install
Schnellstart
-
OpenAI-API-Schlüssel in der Umgebung setzen
export OPENAI_API_KEY="sk-..." -
Charles Dickens’ A Christmas Carol herunterladen
curl https://raw.githubusercontent.com/circlemind-ai/fast-graphrag/… > ./book.txt -
Python-Codebeispiel
from fast_graphrag import GraphRAG DOMAIN = "Analyze this story and identify the characters. Focus on how they interact with each other, the locations they explore, and their relationships." EXAMPLE_QUERIES = [ "What is the significance of Christmas Eve in A Christmas Carol?", "How does the setting of Victorian London contribute to the story's themes?", "Describe the chain of events that leads to Scrooge's transformation.", "How does Dickens use the different spirits (Past, Present, and Future) to guide Scrooge?", "Why does Dickens choose to divide the story into \"staves\" rather than chapters?" ] ENTITY_TYPES = ["Character", "Animal", "Place", "Object", "Activity", "Event"] grag = GraphRAG( working_dir="./book_example", domain=DOMAIN, example_queries="\n".join(EXAMPLE_QUERIES), entity_types=ENTITY_TYPES ) with open("./book.txt") as f: grag.insert(f.read()) print(grag.query("Who is Scrooge?").response) -
Bei einer erneuten Initialisierung von fast-graphrag im selben Arbeitsverzeichnis bleibt sämtliches Wissen automatisch erhalten
Beispiele
- Im Ordner
examplesfinden sich Tutorials zu typischen Anwendungsfällen der Bibliothekcustom_llm.py: Einfaches Beispiel für die Konfiguration von fast-graphrag mit verschiedenen OpenAI-API-kompatiblen Sprachmodellen und Embeddern
Beiträge
- Beiträge jeder Größe sind willkommen. Beiträge machen die Open-Source-Community zu einem großartigen Ort zum Lernen, Inspirieren und Erschaffen
- Im Contribution Guide steht, wie man loslegt
- Wer nicht weiß, wo er anfangen soll, kann dem Discord beitreten und Fragen stellen
Philosophie
- Unsere Mission ist es, die Zahl erfolgreicher GenAI-Anwendungen weltweit zu erhöhen
- Dafür entwickeln wir Memory- und Data-Tools, damit LLM-Apps hochspezialisierte Retrieval-Pipelines nutzen können, ohne die Komplexität der Einrichtung und Wartung agentischer Workflows
Open Source oder Managed Service
- Dieses Repository steht unter der MIT-Lizenz. Details in LICENSE.txt
- Der schnellste und zuverlässigste Weg für den Einstieg in Fast GraphRAG ist die Nutzung des Managed Service
- Die ersten 100 Anfragen pro Monat sind kostenlos, danach wird nutzungsbasiert abgerechnet
1 Kommentare
Hacker-News-Kommentare
Mit BM25 und LLMs zusammen lassen sich sehr relevante Ergebnisse erzielen
PageRank und Triangle Centrality sind interessante Zentralitätsmaße, die sich auf Graphen anwenden lassen
Klassische Information Retrieval eignet sich aus meiner Sicht gut für RAG
In einem AI-Startup soll für die Analyse großer Dokumentenmengen ein GraphRAG-System eingesetzt werden
Frage, warum PageRank einen OpenAI-API-Schlüssel verlangt
Frage, wie sich Graphen ohne Graphdatenbank speichern und abfragen lassen
Frage, wie viel Text nötig ist, um einen Wissensgraphen für domänenspezifische Texte aufzubauen
Frage, wie Domain und Beispielabfragen beim Aufbau eines Wissensgraphen helfen
Verwirrung über das Preismodell
Frage, ob die Antwort auf „Wer ist Scrooge?“ besser ist als bei anderen Ansätzen