code-graph-rag: 它是什么,解决了什么问题,以及为什么它正受到关注

code-graph-rag: 它是什么,解决了什么问题,以及为什么它正受到关注

它解决了什么问题

Code-Graph-RAG 提供了一种使用自然语言分析和查询大型、多语言代码库的方法。它解决了理解复杂的项目结构和关系(如函数调用和类层次结构)的问题,这些关系通常难以通过手动或简单的基于文本的搜索来导航。

它是如何工作的

该系统使用 Tree-sitter 进行跨多种语言的稳健 AST (Abstract Syntax Tree) 解析。然后,它在 Memgraph 中构建代码库结构的全面知识图谱。用户可以用简单的英语提问,系统会使用来自 Google Gemini、OpenAI 或通过 Ollama 使用本地模型的 AI 模型,将这些问题翻译成 Cypher 查询(图数据库查询语言)。它还可以检索特定的源代码片段,并根据 AST 进行精确的代码替换。

它是为谁设计的

该工具是为需要导航、理解和优化大型现有代码库(尤其是那些跨越多种语言的代码库)的开发人员设计的。

亮点

  • 多语言支持:全面支持 C, C++, Java, JavaScript, TypeScript, Python, Rust, PHP, 和 Lua,Go 和 Scala 正在开发中。
  • C-Family 支持:对 C++ templates, 运算符重载和 C preprocessor includes 的深度分析。
  • AI 驱动的查询:将自然语言翻译为 Cypher 以查询代码库结构。
  • 精确编辑:基于 AST 的函数定位,用于精确的代码修改。
  • 实时更新:一个 watcher,随着代码更改自动同步知识图谱。
  • 灵活的 AI 后端:支持云端 (Gemini, OpenAI) 和本地 (Ollama) LLMs。
  • Shell 集成:能够执行终端命令进行测试或 CLI 工具使用。

Sources