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

收藏
最新工具
ClonBrowser
ClonBrowser

一款主打多账号隔离、反指纹和自动化的桌面与网页端指纹浏览器,常用...

Lightyear.fm
Lightyear.fm

一个既有趣又有教育意义的网站。Lightyear模拟了无线电波以...

MovieGame
MovieGame

一个电影爱好者做的个人网站,玩家通过看电影截图来猜电影片名,网站...

汉兜
汉兜

一款汉字版的Wordle游戏,基于流行的英文猜词游戏Wordle...

Gempix2 AI
Gempix2 AI

一款集生成和编辑图像于一体的的AI图像生成工具,提供包括文本转图...

极像素
极像素

一个展示和探索超高像素全景图像的在线平台,能提供全球各地超高分辨...

Krunker.io
Krunker.io

一款免费的在线多人第一人称射击游戏,直接在网页就能玩。游戏玩法多...

转换云
转换云

一个在线音乐格式转换网站,包括.ncm、.mgg、.mflac、...

萝卜工坊
萝卜工坊

一个能把电子文本变成逼真手写风格的在线工具。它有AI专属字体制作...

LyricsPoster
LyricsPoster

一个帮你把喜欢的歌手图片和歌词做成海报的在线工具。你可以在简单的...