Code-Graph-RAG:ナレッジグラフベースのコード検索エンジン
Code-Graph-RAGは、知識グラフと検索拡張生成(RAG)技術を融合したコード検索エンジンであり、コード検索の精度向上を目的としています。

主な機能:
Python、JavaScript、TypeScript、Rust、Go など多言語のコードベースをサポート
Tree-sitter に基づく言語横断の抽象構文木(AST)解析
Memgraph を用いてコード構造を相互接続グラフとして保存
自然言語によるコードベースへの問い合わせをサポート
Google Gemini を介して自然言語を Cypher クエリに変換
関数/メソッドの実ソースコードを直接検索可能
pyproject.toml を解析して外部依存関係を分析可能
入れ子関数やクラス階層の処理をサポート
サポート対象すべての言語で統一されたグラフスキーマを採用
技術原理:
ナレッジグラフ構築:大規模モデルがコードベースを分析し、クラスや関数などのエンティティとその関係(継承、依存など)を抽出して、相互接続グラフを構築します。例えばコードドキュメントを入力すると、テキストユニットを分割し、コード構造を認識して対応するグラフを生成します。
グラフ拡張検索:
サブグラフ検索:ユーザーが質問すると、システムが重要なエンティティを抽出し、グラフ内の関連パス(例:3ホップ近傍)を拡張して、マッチするサブグラフを生成します。例えばある関数を問い合わせると、関連するクラスやモジュールなどのノードにも関連付けられます。
ハイブリッド検索戦略:ベクトル検索(例:BERT 埋め込み)とグラフ埋め込み(例:Node2Vec、TransE)を組み合わせ、重み付け計算式(例:Score=α⋅cos_sim(q,v)+β⋅graph_score(q,G))により最終結果を決定します。
システム構成:
多言語パーサ:Tree-sitter ベースのコード解析およびデータインポートシステム
RAG システム:インタラクティブなコマンドラインクエリインターフェース
主要なコンポーネント:
Tree-sitter 統合:言語横断解析を実現
グラフデータベース:ノードとリレーションを保存する Memgraph
LLM 統合:自然言語を処理する Google Gemini
コード分析:コード要素を抽出する言語横断 AST 走査
クエリツール:専用のグラフクエリおよびコード検索ツール
言語設定:多言語マッピングパラメータ
インストールと使用方法:
前提条件:Python 3.12+、Docker および Docker Compose(Memgraph)、Google Gemini API キー、uv パッケージマネージャ
インストール手順:リポジトリをクローン→依存関係をインストール→環境変数を設定→Memgraph を起動
使用フロー:コードベースを解析してナレッジグラフを生成→RAG CLI を起動して対話的にクエリを実行
活用シーン:
コード分析:コード構造の迅速な理解。例えば特定の名称を持つクラスや、データベースに関連する関数の検索。
コード再利用:自然言語でニーズを記述することで、意味的にマッチするコードスニペットを取得し、開発効率を向上させます。
プロジェクトアドレス:
https://github.com/vitali87/code-graph-rag
脚本プランナー▸
AIアプリ
AIニュース 