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
- undefinedvitali87/code-graph-rag