Code Graph RAG 将知识图谱技术与检索增强生成(RAG)结合,专为理解和分析多语言代码库设计。它通过构建代码实体(函数、类、模块)之间的关系图谱,让 LLM 能够更准确地回答代码相关的问题。与传统的 Graphify 代码知识图谱 方案相比,Code Graph RAG 更侧重于将图谱直接服务于 LLM 推理。
| 功能 | 说明 | 支持语言 |
|---|---|---|
| 多语言解析 | 使用 Tree-sitter 解析多种编程语言 AST | Python/JS/TS/Go/Java/Rust/C++ |
| 知识图谱构建 | 自动提取函数调用、类继承、模块依赖关系 | 全部支持语言 |
| 图谱检索 | 基于 Cypher 查询的精准代码实体检索 | - |
| RAG 集成 | 将图谱检索结果注入 LLM 上下文 | OpenAI/Anthropic/本地模型 |
| 增量更新 | 支持代码变更后的图谱增量更新 | - |
| 可视化 | 内置代码关系图谱可视化工具 | - |
# pip 安装
pip install code-graph-rag
# 安装 Neo4j 作为图谱数据库(Docker 方式)
docker run --name neo4j-codegraph \
-p 7474:7474 -p 7687:7687 \
-e NEO4J_AUTH=neo4j/password \
-d neo4j:5-community
# 从源码安装
git clone https://github.com/codegraphrag/code-graph-rag.git
cd code-graph-rag
pip install -e ".[all]"
from code_graph_rag import CodeGraphRAG
# 初始化
cgr = CodeGraphRAG(
neo4j_uri="bolt://localhost:7687",
neo4j_auth=("neo4j", "password"),
llm_model="claude-sonnet-4-20250514"
)
# 索引代码库
cgr.index_repository(
path="/path/to/your/codebase",
languages=["python", "javascript", "typescript"],
incremental=False
)
# 查询代码关系
result = cgr.query("哪些函数调用了 process_payment?")
for func in result.functions:
print(f"{func.name} ({func.file}:{func.line})")
print(f" 调用链: {func.call_chain}")
# RAG 增强问答
answer = cgr.ask("解释支付模块的整体架构和关键流程")
print(answer)
# 输出包含:模块依赖关系图 + 关键函数说明 + 调用链路
# 使用 Cypher 直接查询图谱
cypher_result = cgr.run_cypher("""
MATCH (f:Function)-[:CALLS]->(g:Function {name: 'process_payment'})
RETURN f.name, f.file, f.line
ORDER BY f.file
""")
| 方案 | 检索精度 | 跨语言 | 图谱可视化 | 增量更新 | 部署复杂度 |
|---|---|---|---|---|---|
| Code Graph RAG | 高 | ✅ 7+语言 | ✅ 内置 | ✅ | 中等 |
| 纯向量RAG | 中 | ✅ | ❌ | ✅ | 低 |
| Sourcegraph | 高 | ✅ | ⚠️ 有限 | ✅ | 高 |
| CTags+grep | 低 | ✅ | ❌ | ✅ | 极低 |
Code Graph RAG 为理解和导航大型多语言代码库提供了一种全新的方式。通过将代码关系建模为知识图谱并直接服务于 LLM 推理,它解决了传统向量检索在代码理解场景下的不足。对于需要在新项目中快速理解代码架构、进行代码审查或构建智能代码助手的团队,Code Graph RAG 是一个值得尝试的方案。Apache-2.0 协议也使其商业友好。
Code Graph RAG 将知识图谱技术与检索增强生成(RAG)结合,专为理解和分析多语言代码库设计。它通过构建代码实体(函数、类、模块)之间的关系图谱,让 LLM 能够更准确地回答代码相关的问题。与传统的 Graphify 代码知识图谱 方案相比,Code Graph RAG 更侧重于将图谱直接服务于 LLM 推
Superpowers AI 编程技能指南