Code-Graph-RAG:一款基于知识图谱的代码搜索引擎

Code-Graph-RAG是一个融合知识图谱与检索增强生成(RAG)技术的代码搜索引擎,目的在于提升代码搜索的精准度。

Code-Graph-RAG:一款基于知识图谱的代码搜索引擎.webp

主要功能:

  • 支持 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

收藏
最新工具
OiiOii ai
OiiOii ai

全球首个专业动画创作平台,通过多个智能模块协同工作,实现从创意到...

扣子空间PPT
扣子空间PPT

扣子空间的这个PPT功能可以一句话生成完整ppt,从大纲、设计到...

Viw AI
Viw AI

一个能直接生成图片和视频的工具平台,把Sora、Veo、Seed...

数学乐
数学乐

Math is Fun 的中文版本,它致力于用简单有趣的方式教大...

PimEyes
PimEyes

一个反向图像搜索和面部识别的搜索引擎。你在它上面上传一张清楚的人...

Uiverse
Uiverse

一个开源免费的UI元素库,里面有3500多个现成组件,都是用纯C...

WindowSwap
WindowSwap

一个让用户可以上传和观看来自世界各地的窗外10分钟高清视频的在线...

Ventusky
Ventusky

一个全球天气信息网站,提供天气预报、天气地图和雷达服务。 它可以...

FreeSewing
FreeSewing

一个利用用户的身体测量数据生成完全量身定制的缝纫纸样的开源平台,...

Social Catfish
Social Catfish

一个专注于帮助用户识别和防范网络诈骗的网站,能帮用户防诈骗、核实...