HN dévoile : FastGraphRAG – une technique RAG améliorée exploitant le PageRank traditionnel
(github.com/circlemind-ai)Framework Fast GraphRAG simplifié et pilotable par prompt
- Connaissances interprétables et débogables : le graphe offre une vue des connaissances que les humains peuvent explorer, interroger, visualiser et mettre à jour
- Rapide, économique et efficace : conçu pour fonctionner à grande échelle avec de faibles besoins en ressources et en coûts
- Données dynamiques : génère et améliore automatiquement des graphes en fonction des exigences du domaine et de l’ontologie
- Mises à jour incrémentales : prend en charge les mises à jour en temps réel à mesure que les données évoluent
- Exploration intelligente : utilise une exploration de graphe fondée sur le PageRank pour améliorer la précision et la fiabilité
- Prise en charge de l’asynchrone et du typage : fournit des workflows robustes et prévisibles grâce à une prise en charge complète de l’asynchrone et du typage
Installation
-
Installation depuis PyPi (recommandée)
pip install fast-graphrag -
Installation depuis les sources
# Clonez d’abord ce dépôt cd fast_graphrag poetry install
Démarrage rapide
-
Définir la clé OpenAI API dans l’environnement
export OPENAI_API_KEY="sk-..." -
Télécharger A Christmas Carol de Charles Dickens
curl https://raw.githubusercontent.com/circlemind-ai/fast-graphrag/… > ./book.txt -
Exemple de code Python
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) -
Lors d’une réinitialisation de fast-graphrag dans le même répertoire de travail, toutes les connaissances sont automatiquement conservées
Exemples
- Consultez le dossier
examplespour des tutoriels sur les cas d’usage courants de la bibliothèquecustom_llm.py: exemple simple de configuration de fast-graphrag avec différents modèles de langage et embedders compatibles avec l’API OpenAI
Contribution
- Les contributions, petites ou grandes, sont les bienvenues. Elles font de la communauté open source un lieu formidable pour apprendre, trouver de l’inspiration et créer
- Consultez le guide de contribution pour savoir comment démarrer
- Si vous ne savez pas par où commencer, vous pouvez rejoindre Discord et poser vos questions
Philosophie
- Notre mission est d’augmenter le nombre d’applications GenAI réussies dans le monde
- Pour cela, nous construisons des outils de mémoire et de données afin que les applications LLM puissent exploiter des pipelines de recherche hautement spécialisés sans la complexité de configuration et de maintenance des workflows agentiques
Open source ou service managé
- Ce dépôt est sous licence MIT. Voir
LICENSE.txtpour plus de détails - Le moyen le plus rapide et le plus fiable de démarrer avec Fast GraphRAG est d’utiliser le service managé
- Les 100 premières requêtes de chaque mois sont gratuites, puis la facturation se fait selon l’usage
1 commentaires
Avis Hacker News
Utiliser BM25 avec des LLM permet d’obtenir des résultats très pertinents
PageRank et Triangle Centrality sont des mesures de centralité intéressantes applicables aux graphes
La recherche d’information traditionnelle semble bien adaptée au RAG
Souhait d’utiliser un système GraphRag dans une startup IA pour l’analyse de documents à grande échelle
Interrogation sur le fait que PageRank exige une clé API OpenAI
Question sur la manière de stocker et d’interroger un graphe sans base de données graphe
Question sur la quantité de texte nécessaire pour construire un graphe de connaissances à partir de textes spécifiques à un domaine
Question sur la façon dont le domaine et les requêtes d’exemple aident à construire un graphe de connaissances
Confusion autour de la politique tarifaire
Question de savoir si la réponse à « Qui est Scrooge ? » est meilleure qu’avec d’autres approches