code-graph-rag

code-graph-rag: とは何であるか、どのような問題を解決するか、そしてなぜ注目を集めているのか

解決する問題

Code-Graph-RAGは、自然言語を使用して大規模で多言語なコードベースを分析およびクエリするための方法を提供します。これは、手動でのナビゲーションや単純なテキストベースの検索では困難なことが多い、複雑なプロジェクト構造や関係性(関数呼び出しやクラス階層など)を理解するという問題を解決します。

仕組み

このシステムは、複数の言語にわたって堅牢なAST (Abstract Syntax Tree) パースを行うために Tree-sitter を使用します。次に、コードベースの構造に関する包括的なナレッジグラフを構築し、それを Memgraph に保存します。ユーザーは平易な英語で質問を行うことができ、システムは Google Gemini、OpenAI、または Ollama を介したローカルモデルなどのプロバイダーの AI モデルを使用して、それを Cypher クエリ(グラフデータベースのクエリ言語)に翻訳します。また、特定のソースコードのスニペットを検索し、AST に基づいて精密なコード置換を実行することも可能です。

対象ユーザー

このツールは、既存の大規模なコードベース、特に複数の言語にわたるものをナビゲート、理解、および最適化する必要がある開発者向けに設計されています。

ハイライト

  • 多言語サポート: C, C++, Java, JavaScript, TypeScript, Python, Rust, PHP, および Lua をフルサポートしており、Go と Scala は開発中です。
  • Cファミリーのサポート: C++ テンプレート、演算子オーバーロード、および C プリプロセッサの include を詳細に分析します。
  • AI駆動のクエリ: コードベースの構造をクエリするための、自然言語から Cypher への翻訳。
  • 精密な編集: 正確なコード修正のための AST ベースの関数ターゲット指定。
  • リアルタイム更新: コードの変更に合わせてナレッジグラフを自動的に同期する ウォッチャー。
  • 柔軟な AI バックエンド: クラウド (Gemini, OpenAI) およびローカル (Ollama) の LLM をサポート。
  • シェル統合: テストや CLI ツールの使用のためにターミナルコマンドを実行する機能。

Sources