ajaysainath/ai-codebase-knowledge-graph

GitHub: ajaysainath/ai-codebase-knowledge-graph

一个基于AST静态分析的Python代码库知识图谱工具,通过可视化依赖关系和AI辅助查询帮助开发者快速理解复杂项目架构。

Stars: 0 | Forks: 0

## AI Codebase Knowledge Graph 一个交互式开发者工具,用于分析 Python 代码库并将其转换为展示文件、函数和模块之间关系的知识图谱。该系统可视化软件架构,检测依赖关系,并提供 AI 辅助的代码库探索。 该工具帮助开发者快速理解大型项目,探索依赖关系,并分析代码变更的影响。 ## 核心功能 - 使用 Python AST 进行静态代码分析 - 生成代码关系的知识图谱 - 交互式依赖关系可视化 - 架构解释和风险分析 - 循环依赖检测 - 依赖关系热力图和架构分层 - AI 辅助代码库查询 - 代码变更影响分析 ## 演示工作流 1. 上传一个 Python 项目或提供项目路径。 2. 点击 **Analyze Codebase**。 3. 系统构建代码库的知识图谱。 4. 使用交互式图表探索架构。 5. 使用 AI 助手查询代码库。 6. 检查依赖、风险和架构层。 示例分析输出: sample.py → imports → database create_user → calls → database.save_user **概述** 现代软件系统包含许多相互关联的模块。在阅读原始源代码时,理解组件如何交互可能非常困难。 本项目使用抽象语法树 (AST) 分析 Python 代码库,并将其转换为图表示。 在图中: 节点代表代码组件: 文件 模块 类 函数 边代表关系,例如: 导入 函数调用 依赖 然后,该工具提供了一个交互式仪表板来探索和分析此图。 **关键特性** *代码库解析* 系统扫描 Python 项目文件夹并提取结构元素,例如: 模块 类 函数 导入 函数调用 这是使用 Python 的 AST (抽象语法树) 模块完成的。 **知识图谱生成** *所有提取的组件都使用 NetworkX 转换为有向图。* 示例关系: sample.py → imports → database create_user → calls → database.save_user 该图代表了项目的架构。 **交互式依赖可视化** 该图使用 PyVis 进行可视化,允许用户: 可视化探索依赖 拖动节点 检查关系 即时理解架构 **图谱搜索与高亮** 用户可以搜索特定组件,例如: database create_user 匹配的节点会在图中自动高亮显示。 **节点检查器** 开发者可以检查特定节点并查看: 它调用的函数 调用它的函数 它导入的模块 导入它的模块 示例: 节点:create_user 调用: database.save_user 被调用: sample.py **架构解释** 该工具自动生成架构的自然语言解释。 示例: 文件 sample.py 导入模块 database。 函数 create_user 调用 database.save_user。 这有助于开发者快速理解系统结构。 **循环依赖检测** 系统检测循环依赖,例如: moduleA → moduleB → moduleC → moduleA 这些循环可能导致架构问题,并会在仪表板中高亮显示。 **架构层检测** 系统根据依赖顺序自动检测架构层。 示例: Layer 0 sample.py create_user Layer 1 database database.save_user 这揭示了应用程序逻辑如何在系统中流转。 **依赖关系热力图** 该工具计算哪些组件最受依赖。 示例: database → 8 dependencies auth → 5 dependencies user_service → 3 dependencies 这有助于识别系统中的关键模块。 **架构风险分析** 具有最高连接性的组件被识别为架构风险。 示例: database 是最受依赖的组件 这有助于开发者定位潜在的瓶颈。 **AI 代码库助手** 用户可以询问有关代码库的问题。 示例问题: Which functions call the database? What modules import database? Explain the architecture. 助手使用知识图谱来回答。 **交互式依赖资源管理器** 开发者可以专注于单个组件,并查看围绕它的聚焦依赖图。 示例: create_user ↓ database.save_user 这对于探索大型代码库非常有用。 **代码变更影响分析** 该工具可以分析如果组件发生变更,系统的哪些部分可能会损坏。 示例: If database changes → affected components: create_user sample.py 这有助于开发者理解代码修改的影响。 **系统架构** 系统的流水线工作原理如下: 用户上传项目 ↓ 代码解析器扫描 Python 文件 ↓ AST 提取函数、类、导入 ↓ 检测关系 ↓ 使用 NetworkX 构建知识图谱 ↓ 使用 PyVis 可视化图谱 ↓ Streamlit 仪表板提供探索工具 **项目结构** ai-codebase-knowledge-graph/ analyzer/ code_parser.py relationship_extractor.py graph/ graph_builder.py query_engine.py ai_query_engine.py dependency_analyzer.py dependency_heatmap.py dependency_explorer.py architecture_explainer.py architecture_layers.py risk_analyzer.py impact_analyzer.py visualization/ graph_visualizer.py ui/ streamlit_app.py examples/ sample.py database.py requirements.txt README.md **使用的技术** Python *核心库:* 1.AST (代码解析) 2.NetworkX (图建模) 3.PyVis (图可视化) 4.Streamlit (交互式仪表板) **安装** *克隆仓库。* git clone https://github.com/your-username/ai-codebase-knowledge-graph.git *进入项目目录。* cd ai-codebase-knowledge-graph *安装依赖。* pip install -r requirements.txt **运行应用程序** *启动 Streamlit 仪表板。* python -m streamlit run ui/streamlit_app.py --server.port 1804 *打开浏览器并访问:* http://localhost:1804 **示例用法** *上传一个 Python 项目或指定一个项目文件夹。* 点击 Analyze *Codebase。* *系统将:* 生成知识图谱 显示架构可视化 检测依赖 提供 AI 洞察 *然后您可以使用以下方式探索系统:* 1.图谱搜索 2.节点检查器 3.依赖资源管理器 4.AI 助手 5.影响分析 **示例输出** *检测到的示例关系:* sample.py → imports → database create_user → calls → database.save_user *示例架构层:* Layer 0 sample.py Layer 1 create_user Layer 2 database.save_user database 未来改进 *可能的扩展:* 1.支持多种编程语言 2.可点击的图节点检查器 3.高级 AI 架构解释 4.与 GitHub 仓库集成 5.自动化架构图 **为什么这个项目很重要** *理解大型代码库是软件开发中的一个主要挑战。* *该项目演示了如何使用静态代码分析和图建模来:* 1.可视化架构 2.检测隐藏的依赖 3.分析变更影响 4.协助开发者探索复杂系统 **作者** Ajay Sainath AI Codebase Knowledge Graph 静态分析和软件架构探索工具。 ## 为什么选择这个项目 理解大型代码库是软件开发中的一个常见挑战。 本项目演示了静态代码分析和图建模如何帮助开发者: - 可视化架构 - 检测隐藏的依赖 - 分析代码变更的影响 - 交互式地探索复杂系统 该工具结合了 AST 解析、图算法和交互式可视化,以提供对软件架构的洞察。 ## 未来改进 未来可能的增强功能包括: - 支持多种编程语言 - 高级 AI 架构解释 - 图中可点击的节点检查 - GitHub 仓库集成 - 架构模式检测
标签:Codebase Analysis, Kubernetes, odt, Python, Software Composition Analysis, 云安全监控, 交互式图表, 人工智能, 代码分析, 代码助手, 代码图谱, 代码影响分析, 代码理解, 依赖关系图, 依赖检测, 凭证管理, 只读文件系统, 威胁情报, 安全专业人员, 开发者工具, 循环依赖, 抽象语法树, 无后门, 架构可视化, 特权检测, 用户模式Hook绕过, 研发效能, 自动化payload嵌入, 软件架构, 逆向工具, 静态分析