Code-Graph-RAG: Eine code-suchmaschine auf Basis von Wissensgraphen
Code-Graph-RAG ist eine Code-Suchmaschine, die Knowledge Graph- und Retrieval-Augmented-Generation-Technologie (RAG) kombiniert, um die Präzision der Codesuche zu verbessern.

Hauptfunktionen:
Unterstützung von Codebasen in mehreren Sprachen wie Python, JavaScript, TypeScript, Rust und Go
Sprachübergreifende AST-Analyse (Abstract Syntax Tree) auf Basis von Tree-sitter
Speicherung der Codestruktur als vernetzter Graph mittels Memgraph
Unterstützung von Suchanfragen in natürlicher Sprache an die Codebasis
Umwandlung von natürlicher Sprache in Cypher-Abfragen mithilfe von Google Gemini
Direkter Abruf des tatsächlichen Quellcodes von Funktionen/Methoden
Analyse externer Abhängigkeiten durch Parsen von pyproject.toml
Verarbeitung verschachtelter Funktionen und Klassenhierarchien
Einheitliches Graph-Schema für alle unterstützten Sprachen
Technische Grundlagen:
Aufbau des Knowledge Graphs: Ein Large Language Model analysiert die Codebasis, extrahiert Entitäten wie Klassen und Funktionen sowie deren Beziehungen (z. B. Vererbung, Abhängigkeiten) und erstellt einen vernetzten Graphen. Wird beispielsweise eine Codedokumentation eingegeben, zerlegt das System die Texteinheiten, erkennt die Codestruktur und generiert den entsprechenden Graphen.
Graph-erweiterte Abfrage:
Subgraph-Abfrage: Bei einer Benutzeranfrage extrahiert das System die Schlüsselentitäten und erweitert die zugehörigen Pfade im Graphen (z. B. 3-Hop-Nachbarschaft), um einen passenden Subgraphen zu erzeugen. Wird etwa nach einer bestimmten Funktion gefragt, können relevante Knoten wie zugehörige Klassen oder Module einbezogen werden.
Hybride Abfragestrategie: Kombination aus Vektor-Suche (z. B. BERT-Embeddings) und Graph-Embeddings (z. B. Node2Vec, TransE), wobei das Endergebnis über eine gewichtete Formel (z. B. Score=α⋅cos_sim(q,v)+β⋅graph_score(q,G)) ermittelt wird.
Systemarchitektur:
Mehrsprachiger Parser: Codeparserung und Datenimport auf Basis von Tree-sitter
RAG-System: Interaktive Kommandozeilen-Schnittstelle für Abfragen
Zu den Kernkomponenten gehören:
Tree-sitter-Integration: Sprachübergreifendes Parsen
Graphdatenbank: Speicherung von Knoten und Beziehungen in Memgraph
LLM-Integration: Verarbeitung natürlicher Sprache mit Google Gemini
Codeanalyse: Sprachübergreifende AST-Traversierung zur Extraktion von Code-Elementen
Abfrage-Tools: Spezielle Werkzeuge für Graph-Abfragen und Code-Suche
Sprachkonfiguration: Mehrsprachige Mapping-Parameter
Installation und Nutzung:
Voraussetzungen: Python 3.12+, Docker und Docker Compose (Memgraph), Google Gemini API-Schlüssel, uv-Paketmanager
Installationsschritte: Repository klonen → Abhängigkeiten installieren → Umgebungsvariablen konfigurieren → Memgraph starten
Nutzungsablauf: Codebasis parsen, um den Knowledge Graph zu erzeugen → RAG CLI für interaktive Abfragen starten
Anwendungsfälle:
Codeanalyse: Schnelles Verständnis der Codestruktur, z. B. Abfrage von Klassen mit einem bestimmten Namen oder von datenbankbezogenen Funktionen
Code-Wiederverwendung: Über natürlichsprachliche Anforderungen semantisch passende Code-Snippets abrufen, um die Entwicklungseffizienz zu steigern
Projektadresse:
https://github.com/vitali87/code-graph-rag
Drehbuch-Assistent▸
AI Apps
AI Nachrichten 