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

收藏
最新工具
AirPano
AirPano

一个能在线虚拟旅行的平台,提供全球各地的360° 航拍全景和沉浸...

Explore
Explore

Explore是全球知名的慈善实时自然摄像网络和纪录片频道,由非...

Krokotak
Krokotak

一个给家长和孩子用的创意手工与教育网站,里面有好多手工教程、教育...

奇多作业纸
奇多作业纸

一个免费的幼小衔接学习网站,专门给幼儿园大班孩子用,里面有数学、...

福客AI客服
福客AI客服

一个专为电商行业研发的电商智能客服系统,主要特点是全自动回复、会...

颜习生AI
颜习生AI

一个智能颜值测评平台,算法经百万级人脸数据训练,结合亚洲美学标准...

A Million Dollar Idea
A Million Dollar Idea

一个用AI帮人想商业点子的工具,这里有几百个各行各业的创业点子,...

DeepSider AI
DeepSider AI

一款浏览器侧边栏AI工具,集成了GPT、Sonnet、Claud...

店匠Shoplazza
店匠Shoplazza

专门帮中国跨境电商卖家建独立站、做运营的平台。它用 SaaS 模...

Rebolt AI
Rebolt AI

通过自然语言驱动的低代码,无代码企业级AI应用开发平台,团队能用...