Code-Graph-RAG : un moteur de recherche de code basé sur des graphes de connaissances
Code-Graph-RAG est un moteur de recherche de code qui fusionne la technologie de graphe de connaissances et la génération augmentée par récupération (RAG), dans le but d'améliorer la précision de la recherche de code.

Fonctionnalités principales :
Prise en charge des bases de code en plusieurs langages tels que Python, JavaScript, TypeScript, Rust et Go
Analyse de l'arbre syntaxique abstrait (AST) multilingue basée sur Tree-sitter
Utilisation de Memgraph pour stocker la structure du code sous forme de graphe interconnecté
Prise en charge des requêtes en langage naturel sur les bases de code
Conversion du langage naturel en requêtes Cypher via Google Gemini
Accès direct au code source réel des fonctions et méthodes
Analyse de pyproject.toml pour examiner les dépendances externes
Prise en charge des fonctions imbriquées et de la hiérarchie des classes
Schéma de graphe unifié pour tous les langages pris en charge
Principes techniques :
Construction du graphe de connaissances : un grand modèle de langage analyse la base de code pour en extraire des entités telles que les classes et les fonctions, ainsi que leurs relations (héritage, dépendances, etc.), afin de construire un graphe interconnecté. Par exemple, après avoir saisi la documentation du code, le système décompose les unités de texte, identifie la structure du code et génère le graphe correspondant.
Recherche augmentée par graphe :
Recherche de sous-graphe : après une question de l'utilisateur, le système extrait les entités clés et étend les chemins associés dans le graphe (par exemple, un voisinage à 3 sauts) pour générer un sous-graphe correspondant. Par exemple, lors d'une requête sur une fonction, il est possible d'associer les nœuds des classes, modules, etc. liés.
Stratégie de recherche hybride : combinaison de la recherche vectorielle (par exemple, les plongements BERT) et des plongements de graphe (par exemple, Node2Vec, TransE), à travers une formule pondérée (par exemple, Score=α⋅cos_sim(q,v)+β⋅graph_score(q,G)) pour déterminer le résultat final.
Architecture du système :
Analyseur multilingue : système d'analyse de code et d'importation de données basé sur Tree-sitter
Système RAG : interface de requête interactive en ligne de commande
Les composants principaux comprennent :
Intégration Tree-sitter : analyse multilingue
Base de données graphe : Memgraph pour stocker les nœuds et les relations
Intégration LLM : Google Gemini pour le traitement du langage naturel
Analyse du code : parcours AST multilingue pour extraire les éléments du code
Outils de requête : outils dédiés à l'interrogation de graphes et à la recherche de code
Configuration des langages : paramètres de mappage multilingues
Installation et utilisation :
Prérequis : Python 3.12+, Docker et Docker Compose (Memgraph), clé API Google Gemini, gestionnaire de paquets uv
Étapes d'installation : cloner le dépôt → installer les dépendances → configurer les variables d'environnement → démarrer Memgraph
Flux d'utilisation : analyser la base de code pour générer le graphe de connaissances → lancer le RAG CLI pour des requêtes interactives
Cas d'utilisation :
Analyse du code : compréhension rapide de la structure du code, par exemple recherche de classes portant un nom précis ou de fonctions liées à la base de données
Réutilisation du code : obtenir des extraits de code correspondants sur le plan sémantique en décrivant les besoins en langage naturel, afin d'améliorer l'efficacité du développement
Adresse du projet :
https://github.com/vitali87/code-graph-rag
Assistant scénario▸
Apps AI
Actualités AI 