Sidhant0707/codeautopsy
GitHub: Sidhant0707/codeautopsy
一款融合静态分析引擎与大语言模型的 GitHub 仓库架构深度解析工具,能自动生成依赖关系图、架构模式识别和执行流程等可视化报告。
Stars: 0 | Forks: 0
## 🔬 概述
CodeAutopsy 是一个深度分析流水线,可将复杂的 GitHub 仓库转化为交互式架构图。通过利用 Gemini 1.5 Pro 和自定义静态分析,它可以帮助开发者在几分钟(而非几天)内理解新的代码库。
**在几分钟内理解任何 GitHub 代码库。**
CodeAutopsy 是一款由 AI 驱动的仓库分析工具,它在将结构化上下文发送给 LLM 之前,会执行真正的静态分析。它不是一个简单的 API 封装器——它能构建 import 图、检测入口点、按重要性对文件进行排名,并将结构化数据提供给 Gemini 进行架构分析。
🌐 **在线演示:** [codeautopsy.app](https://codeautopsy-lyart.vercel.app)
## 🛠️ 功能介绍
粘贴任何 GitHub 仓库 URL,即可获取:
- **架构概览** — 模式检测(MVC、Monolith、Library 等)。
- **执行流程** — 详细跟踪应用程序从头到尾的运行方式。
- **依赖关系图** — 通过解析真实的 import 构建的 Mermaid.js 可视化图表。
- **技术栈检测** — 深入分析语言、框架及其具体作用。
- **核心模块拆解** — 分析每个文件的功能及其存在的原因。
- **开发者新手指南** — 为新贡献者即时生成的文档。
- **代码库问答聊天** — 由 Groq/Llama 3.1 驱动的自然语言问答。
- **可分享报告** — 持久化的分析链接,位于 `/view/{owner}/{repo}`。
## 🏗️ 为什么它不仅仅是 API 封装器
大多数“AI 代码分析”工具只是将代码库丢给 LLM 并听天由命。CodeAutopsy 在任何 AI 调用之前,会使用一个复杂的工程流水线进行处理:
### 第 1 层 — 仓库解析器
- 通过 **GitHub Git Trees API** 在单次调用中获取完整的文件树。
- 智能噪声过滤:自动忽略 `node_modules`、`dist`、lock 文件和二进制文件。
- 通过解析清单(`package.json`)和文件名模式检测入口点。
### 第 2 层 — 静态分析引擎
- **正则表达式解析:** 提取整个代码库中的 `import`/`require` 语句。
- **图构建:** 通过本地路径解析构建依赖邻接表。
- **指标计算:** 计算 **Fan-in 分数** 以识别核心实用工具模块。
- **排名算法:** 按“架构重要性”(Fan-in + Depth + Role)对文件进行排序。
### 第 3 层 — 结构化 AI 分析
- **上下文优化:** 仅将排名前 15-20 的文件发送给 Gemini,以防止“迷失在中间”的上下文问题。
- **严格 Schema:** 强制 Gemini 使用强类型的 JSON schema,以实现一致的 UI 渲染。
- **交叉验证:** 确保 AI 生成的见解与实际的文件树相匹配。
### 第 4 层 — 基础设施
- **智能缓存:** 基于 `repo_url + commit_sha + analysis_version` 作为键的 Supabase (PostgreSQL) 缓存。
- **无状态认证:** 使用 `@supabase/ssr` 进行安全的会话处理和私有仓库 token 注入。
- **流量控制:** 使用 Upstash Redis 进行速率限制(每 24 小时 3 次分析)。
## 💻 技术栈
| 层级 | 技术 |
| :--- | :--- |
| **Frontend** | Next.js 16 (App Router) + Tailwind CSS + Framer Motion |
| **AI Engine** | Google Gemini 2.5 Pro / Flash |
| **Repo Chat** | Groq (Llama 3.1 8B) |
| **Auth / DB** | Supabase (PostgreSQL) |
| **Rate Limiting** | Upstash Redis |
| **Diagrams** | Mermaid.js |
| **Deployment** | Vercel |
## 🚀 本地运行
1. **克隆与安装**
git clone https://github.com/Sidhant0707/codeautopsy
cd codeautopsy
npm install
配置环境
创建一个 .env.local 文件:
代码片段
GITHUB_TOKEN=your_github_token
GEMINI_API_KEY=your_gemini_api_key
GROQ_API_KEY=your_groq_api_key
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_KEY=your_supabase_service_key
UPSTASH_REDIS_REST_URL=your_upstash_url
UPSTASH_REDIS_REST_TOKEN=your_upstash_token
启动
Bash
npm run dev
📐 架构流程
代码片段
graph TD
A[User pastes GitHub URL] --> B[GitHub API: Fetch File Tree]
B --> C[Filter Noise & Binary Files]
C --> D[Detect Entry Points & Parse Imports]
D --> E[Build Dependency Graph & Rank Files]
E --> F[Fetch Top Ranked File Contents]
F --> G[Gemini 1.5 Pro: Architectural Analysis]
G --> H[Store in Supabase Cache]
H --> I[Render Dashboard & Mermaid Diagram]
👨💻 开发者
Sidhant Kumar - LinkedIn | GitHub
标签:AI代码分析, AI辅助编程, AST解析, DLL 劫持, Gemini 1.5 Pro, GitHub仓库分析器, Llama 3.1, Mermaid.js, OSV, Vercel, 云安全态势管理, 代码可视化, 代码库自动解剖, 代码问答系统, 依赖关系图, 前端应用, 大语言模型, 威胁情报, 开发者入职指南, 开发者工具, 开源项目分析, 技术栈识别, 架构模式检测, 模块功能分析, 程序执行流分析, 自动化攻击, 软件架构分析, 错误基检测, 静态代码分析