Academic Repo Analyzer
Academic Repo Analyzer — 学术代码仓库分析器
全面分析深度学习/机器学习代码仓库,自动识别任务类型、模型架构、核心算法、技术栈和创新点,生成"快速理解文档"。
核心理念
通过系统性地扫描代码仓库结构,提取关键信息,让用户在几分钟内理解一个陌生的 ML/DL 代码仓库。
Input Contract
- 优先输入:仓库路径、目录结构、README、依赖文件、入口脚本、核心模型文件、配置文件
- 最低可用输入:至少提供
README.md、一个入口脚本、一个模型文件中的任意一项 - 缺失处理:材料不完整时继续做阶段性分析,并明确标注哪些结论属于推断、哪些仍待确认
Output Contract
始终输出一个可复用的 仓库快速理解文档,至少包含:
- 仓库概览
- 信息完整度说明
- 技术栈详情
- 模型架构分析
- 工作流程摘要
- 可交给
paper-analyzer的配图建议
工作流程
Step 1: 仓库结构扫描
首先,获取仓库的完整目录结构:
仓库结构清单:
├── README.md(首要分析对象)
├── setup.py / requirements.txt / environment.yml(依赖分析)
├── main.py / train.py / eval.py / inference.py(入口文件)
├── configs/ / cfg/ / hparams/(配置文件)
├── models/ / model/ / networks/ / src/(模型定义)
├── utils/ / helpers/ / tools/(工具函数)
├── datasets/ / data/ / loader.py(数据加载)
└── 其他关键文件
必须读取的文件:
- README.md(项目介绍)
- 依赖文件(技术栈识别)
- 主要入口脚本(工作流理解)
- 模型定义文件(架构识别)
Step 2: 任务类型识别
根据关键词和文件结构判断任务类型:
| 任务类型 | 关键词 | 文件特征 |
|---|---|---|
| 计算机视觉(CV) | image, cv2, PIL, resnet, vit, unet, detection, segmentation, classification |
数据集目录含图像,使用 torchvision, mmcv 等 |
| 自然语言处理(NLP) | text, token, bert, gpt, transformer, llm, sentence, corpus |
使用 transformers, datasets, tokenizers 等 |
| 强化学习(RL) | policy, agent, environment, reward, ppo, dqn, sac, gym, env |
环境交互循环,奖励函数定义 |
| 机器人(Robotics) | robot, kinematics, dynamics, simulation, gazebo, ros, control |
物理模拟,机器人模型 |
| 多模态(Multimodal) | image-text, vision-language, clip, multimodal, cross-modal |
同时处理图像和文本 |
| 时间序列(Time Series) | timeseries, forecast, temporal, sequence, lstm, gru |
时间维度处理,预测任务 |
| 生成模型(Generative) | gan, diffusion, vae, generative, generation, synthesize |
生成任务,对抗训练,扩散过程 |
Step 3: 技术栈识别
分析依赖文件和代码导入:
| 框架 | 识别特征 |
|---|---|
| PyTorch | import torch, nn.Module, torch.nn, torch.utils.data |
| TensorFlow | import tensorflow, tf.keras, tf.layers |
| JAX/Flax | import jax, flax, haiku, optax |
| MxNet/Gluon | import mxnet, gluon |
| PaddlePaddle | import paddle |
辅助库识别:
- 计算机视觉:
torchvision,mmcv,detectron2,albumentations - NLP:
transformers,datasets,tokenizers,nltk,spacy - 强化学习:
gym,stable-baselines3,ray[rllib] - 科学计算:
numpy,scipy,pandas,matplotlib - 实验管理:
wandb,mlflow,tensorboard,ignite - 分布式训练:
torch.distributed,deepspeed,accelerate
Step 4: 模型架构和核心算法提取
从模型定义文件中提取:
架构关键词:
Transformer,Attention,Self-Attention,Cross-AttentionCNN,ResNet,ViT,Swin,U-Net,FPNRNN,LSTM,GRU,Seq2SeqGNN,GCN,GAT,GraphGAN,Diffusion,VAE,Flow
核心算法点:
- 损失函数定义(搜索
loss =,criterion =) - 新颖的模块或层(带注释或非标准命名)
- 数据增强策略
- 训练策略和技巧(学习率调度、优化器选择)
Step 4.5: 缺信息处理分支
总原则: 信息不足时,优先输出“保守但有用”的阶段性结果,而不是停止任务;任何超出已知证据的判断,都必须明确标注为“推断”或“待确认”。
情况 1:缺少 README.md
- 继续读取入口脚本、依赖文件、配置文件、模型定义文件
- 通过文件名、类名、函数名、导入库、配置项推断任务类型与技术栈
- 在输出中明确标注:
项目介绍缺失,仓库目标主要基于代码结构推断
情况 2:缺少入口脚本或训练脚本
- 优先分析
configs/、models/、datasets/、scripts/ - 若只能看到局部模块,则将结论限定为“模块级理解”,不要假装已经理解完整训练/推理流程
- 在输出中明确标注:
训练/推理主流程证据不足
情况 3:缺少模型定义文件
- 可先识别任务类型、技术栈、数据形式、实验框架
- 对“主要架构”“核心创新点”使用保守表述,如:
疑似基于 Transformer 变体 - 不要臆造网络细节或层级结构
情况 4:仓库过大或只能访问部分目录
- 先分析顶层目录、README、主配置和最核心的 3-5 个文件
- 明确说明当前结论基于“有限采样”,不是全仓精读结论
- 优先保证方向判断正确,而不是细节过满
情况 5:用户几乎没有提供可分析文件
- 不要空泛输出完整分析报告
- 改为输出“预分析结果 + 所需最小材料清单”
- 最小材料清单优先级:
README.mdrequirements.txt/pyproject.tomltrain.py/main.py/run.py- 一个核心模型文件
- 一个配置文件
Step 5: 生成快速理解文档
按照以下格式输出:
仓库快速理解文档
📊 仓库概览
| 项目 | 内容 |
|---|---|
| 仓库名称 | [从目录名或 README 提取] |
| 任务类型 | [CV/NLP/RL/Robotics/多模态等] |
| 核心框架 | [PyTorch/TensorFlow/JAX 等] |
| 主要架构 | [识别的模型架构] |
| 一句话描述 | [用一句话概括这个仓库做什么] |
信息完整度说明
- 已分析材料:[已实际读取的文件、目录或配置]
- 当前输出类型:完整分析 / 阶段性分析 / 局部分析
- 高置信信息:[有明确文件证据支撑的结论]
- 待确认信息:[基于结构、命名、依赖或注释的推断,以及缺失项]
- 建议补充材料:[下一步最值得补的 1-3 项]
🏗️ 技术栈详情
核心框架:
- [框架 1]
- [框架 2]
主要依赖:
- [库 1] - [用途]
- [库 2] - [用途]
实验管理:
- [工具名,如有]
🧠 模型架构分析
整体架构: [描述整体网络结构,如 encoder-decoder、堆叠 Transformer 等]
关键组件:
- [组件 1] - [功能描述]
- [组件 2] - [功能描述]
核心创新点(推测):
- [创新点 1]
- [创新点 2]
📝 工作流程
训练流程:
- 数据加载 → [描述]
- 前向传播 → [描述]
- 损失计算 → [描述]
- 反向传播 → [描述]
推理流程: [如适用,描述推理逻辑]
🎨 配图建议(传递给 paper-analyzer)
推荐配图类型:
- Overall Framework(总体框架图)× 1
- Network Architecture(网络架构图)× 1
- [关键模块] Module Detail(模块细节图)× [1-2]
- [其他推荐配图]
核心贡献可视化建议: [描述如何最好地可视化这个仓库的核心思想]
与 paper-analyzer 配合
生成此文档后,建议用户:
提示:现在可以使用「Academic Paper Analyzer & Figure Planner」技能,基于这份快速理解文档来规划详细的论文配图。
输出格式
每次分析完成后,按照上述格式输出完整的 markdown 文档。
工具使用指南
使用 bash 工具实际扫描和分析代码文件时,按以下步骤操作:
1. 获取目录结构
# 显示完整目录树
find . -type f -name "*.py" -o -name "*.md" -o -name "*.txt" -o -name "*.yml" -o -name "*.yaml" -o -name "*.toml" -o -name "*.json" | head -100
# 或者用 tree(如果安装了)
tree -L 3 -I '__pycache__|.git|*.pyc'
2. 读取关键文件
# 读取 README
cat README.md
# 读取依赖文件
ls -la requirements.txt setup.py pyproject.toml environment.yml 2>/dev/null
cat requirements.txt 2>/dev/null || cat pyproject.toml 2>/dev/null
# 查找模型定义目录
ls -la models/ model/ networks/ src/ 2>/dev/null
# 查找入口脚本
ls -la main.py train.py eval.py inference.py run.py 2>/dev/null
3. 快速扫描代码内容
# 查找框架导入
grep -r "import torch\|import tensorflow\|import jax" --include="*.py" . | head -20
# 查找模型架构关键词
grep -r "class.*Model\|class.*Network\|class.*Transformer\|class.*CNN" --include="*.py" . | head -20
# 查找损失函数
grep -r "def loss\|criterion\|loss_fn" --include="*.py" . | head -10
4. 读取模型定义文件
# 读取模型目录下的主要文件
find models/ model/ networks/ src/ -name "*.py" -type f 2>/dev/null | head -5
5. 工作流程建议
- 先看目录结构:了解仓库组织方式
- 再读 README:获取项目介绍和核心功能
- 然后看依赖:识别技术栈
- 最后读代码:重点看模型定义和入口脚本
注意事项
- 证据导向:基于实际发现的文件和代码做出判断,不确定时注明"推测"
- 优先级:README > 入口脚本 > 模型定义 > 其他文件
- 简洁性:快速理解文档应控制在 1-2 页阅读量
- 后续衔接:确保"配图建议"部分与 paper-analyzer 的输入格式兼容
More from azhi-ss/academic-figure-skills
academic paper analyzer & figure planner
Use this skill whenever the user wants to analyze an academic paper, identify figure-worthy content, plan which figures to generate, suggest figure types and count per section, or says "分析论文配图需求", "论文需要哪些图", "论文配图规划", "paper figure planning", "analyze paper for figures", or "which figures does my paper need".
12academic figure prompt
Use this skill whenever the user wants detailed English prompts for AI image tools to produce top-conference-quality academic figures, needs prompts for framework diagrams, architecture diagrams, pipeline flowcharts, module detail diagrams, comparison figures, or data-pattern grids, or says "论文配图提示词", "生成论文配图", "学术论文生图", "架构图提示词", "框架图提示词", "顶会风格配图", "CVPR 风格图", "NeurIPS 风格图", "paper figure prompt", or "academic diagram prompt".
11academic figure color expert
Use this skill whenever the user wants help choosing an academic figure color palette, needs venue-specific or colorblind-safe design advice, wants a paper color scheme recommendation, wants to match a color scheme for extracted architecture diagrams, or says "学术配图配色", "论文配色方案", "色盲友好配色", "学术配色", "架构图配色", "academic color palette", "colorblind safe figure", "paper color scheme", "architecture diagram color matching".
11academic figure prompt — modern ml airy style
Use this skill whenever the user wants modern ML or RL paper-style figure prompts matching recent ICLR, NeurIPS, or ICML 2024-2025 aesthetics, needs a soft pastel academic diagram style, or says "pastel风格论文配图", "现代ML论文配图", "modern ML figure prompt", "pastel academic figure", "ICLR 2024 风格图", or "NeurIPS 2025 风格图".
11academic figure workflow orchestrator
Use this skill whenever the user wants an end-to-end academic figure workflow, wants to go from a repository or paper to a figure prompt, is unsure which academic-figure skill to start with, or says "帮我从仓库到配图走一遍", "完整论文配图工作流", "academic figure workflow", "end-to-end figure pipeline", "from paper to figure prompt", or "which skill should I use first".
11academic figure architecture extractor & analyzer
Use this skill whenever the user wants to extract architecture diagrams from academic papers, filter out invalid images, analyze the structure and components of diagrams, automatically match suitable color schemes, or says "提取论文架构图", "架构图分析", "从PDF中提取图表", "自动分析架构图", "architecture diagram extraction", "extract figures from pdf", "analyze architecture diagram".
10