GitNexus 核心引擎深度解析
索引流水线、社区检测与流程追踪、混合搜索与嵌入生成
架构概览
GitNexus 的核心引擎由三个相互协作的子系统构成:索引流水线(Ingestion Pipeline)、社区与流程检测(Community & Process Detection)、混合搜索与嵌入(Hybrid Search & Embeddings)。这三个子系统共同将原始代码库转换为可查询的知识图谱。
核心类关系图

关键数据结构
- KnowledgeGraph:知识图谱的核心,包含节点和关系集合。节点类型涵盖
File、Folder、Function、Class、Method、Interface、Community、Process;关系类型包括CALLS、IMPORTS、EXTENDS、IMPLEMENTS、MEMBER_OF、STEP_IN_PROCESS。 - SymbolTable:符号表,用于快速查找符号定义。键为
filePath:name,值为{nodeId, type}。 - ASTCache:AST 缓存,避免重复解析。采用 LRU 策略,默认缓存所有文件。
核心处理流程
索引流水线完整流程
索引流水线是 GitNexus 的心脏,负责将代码库转换为知识图谱。整个流程分为 9 个阶段,每个阶段都有明确的职责和进度反馈。

关键阶段说明:
- 文件扫描(0-15%):
walkRepository遍历文件系统,收集所有可解析文件,建立 File/Folder 节点。 - AST 解析(30-70%):使用 Tree-sitter 并行解析,提取符号定义。支持 Worker 池并行处理,失败时自动降级为顺序处理。
- 导入解析(70-75%):语言感知的导入路径解析。TypeScript/JavaScript 支持相对路径和 node_modules;Go 支持包路径解析;Python 支持相对导入和 sys.path。
- 调用解析(75-80%):通过 Tree-sitter 查询匹配函数调用点,建立 CALLS 关系。置信度计算基于精确匹配(名称 + 参数数量)、模糊匹配(仅名称)或全局匹配(未解析的标识符)。
- 社区检测(85-90%):使用 Leiden 算法基于 CALLS 边进行功能聚类。构建无向 Graphology 图,运行 Leiden 算法(resolution=1.0),生成社区节点和成员关系。





