> [!NOTE] > 本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。 > [English](./README.en.md) · [原始项目](https://github.com/The-Pocket/PocketFlow-Tutorial-Codebase-Knowledge) · [上游 README](https://github.com/The-Pocket/PocketFlow-Tutorial-Codebase-Knowledge/blob/HEAD/README.md) > 原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。

用 AI 将代码库变成易懂教程

![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg) > *你是否曾盯着别人写的新代码库,完全不知从何下手?本教程将教你如何构建一个 AI 智能体(agent),用于分析 GitHub 仓库,并生成面向初学者的教程,清晰讲解代码究竟是如何工作的。*

这是 [Pocket Flow](https://github.com/The-Pocket/PocketFlow), 一个仅 100 行的 LLM 框架)的教程项目。它会爬取 GitHub 仓库,并从代码中构建知识库。它分析整个代码库以识别核心抽象(abstraction)及其交互方式,并将复杂代码转化为配有清晰可视化的、面向初学者的教程。 - 想了解更多?请查看图书 [《Crack Any Codebase with AI》](https://www.manning.com/books/crack-any-codebase-with-ai) - 想了解更多?请查看 [YouTube 开发教程](https://youtu.be/AFY67zOpbSo) - 想了解更多?请查看 [Substack 帖子教程](https://zacharyhuang.substack.com/p/ai-codebase-knowledge-builder-full)   **🔸 🎉 登上 Hacker News 首页**(2025 年 4 月),获得超过 900 个赞:[讨论 »](https://news.ycombinator.com/item?id=43739456) ## ⭐ 热门 GitHub 仓库的示例结果!

🤯 这些教程全部是通过爬取 GitHub 仓库,**完全由 AI 生成**的! - [AutoGen Core](https://the-pocket.github.io/PocketFlow-Tutorial-Codebase-Knowledge/AutoGen%20Core) - 构建能像同事一样交流、思考并共同解决问题的 AI 团队! - [Browser Use](https://the-pocket.github.io/PocketFlow-Tutorial-Codebase-Knowledge/Browser%20Use) - 让 AI 替你浏览网页,像数字助理一样点击按钮、填写表单! - [Celery](https://the-pocket.github.io/PocketFlow-Tutorial-Codebase-Knowledge/Celery) - 用后台任务为你的应用提速,让你在睡觉时任务照常运行! - [Click](https://the-pocket.github.io/PocketFlow-Tutorial-Codebase-Knowledge/Click) - 只需一个装饰器,就能把 Python 函数变成精致的命令行工具! - [Codex](https://the-pocket.github.io/PocketFlow-Tutorial-Codebase-Knowledge/Codex) - 用这个 AI 终端向导,把自然语言变成可运行代码! - [Crawl4AI](https://the-pocket.github.io/PocketFlow-Tutorial-Codebase-Knowledge/Crawl4AI) - 训练你的 AI,从任意网站精确提取真正重要的内容! - [CrewAI](https://the-pocket.github.io/PocketFlow-Tutorial-Codebase-Knowledge/CrewAI) - 组建一支 AI 专家梦之队,攻克看似不可能的问题! - [DSPy](https://the-pocket.github.io/PocketFlow-Tutorial-Codebase-Knowledge/DSPy) - 像搭乐高一样构建 LLM 应用,还能自我优化! - [FastAPI](https://the-pocket.github.io/PocketFlow-Tutorial-Codebase-Knowledge/FastAPI) - 闪电般创建 API,并自动生成客户会喜欢的文档! - [Flask](https://the-pocket.github.io/PocketFlow-Tutorial-Codebase-Knowledge/Flask) - 用极简代码打造 Web 应用,从原型到生产都能扩展! - [Google A2A](https://the-pocket.github.io/PocketFlow-Tutorial-Codebase-Knowledge/Google%20A2A) - 让 AI 智能体跨平台协作的通用语言! - [LangGraph](https://the-pocket.github.io/PocketFlow-Tutorial-Codebase-Knowledge/LangGraph) - 把 AI 智能体设计成流程图,让每一步都记住之前发生了什么! - [LevelDB](https://the-pocket.github.io/PocketFlow-Tutorial-Codebase-Knowledge/LevelDB) - 用 Google 驱动区块链的高速引擎,以惊人速度存储数据! - [MCP Python SDK](https://the-pocket.github.io/PocketFlow-Tutorial-Codebase-Knowledge/MCP%20Python%20SDK) - 通过优雅协议构建强大应用,无需纠结底层细节! - [NumPy Core](https://the-pocket.github.io/PocketFlow-Tutorial-Codebase-Knowledge/NumPy%20Core) - 掌握数据科学背后的引擎,让 Python 快如 C! - [OpenManus](https://the-pocket.github.io/PocketFlow-Tutorial-Codebase-Knowledge/OpenManus) - 构建拥有数字大脑、能像人类一样思考、学习并使用工具的 AI 智能体! - [PocketFlow](https://the-pocket.github.io/PocketFlow-Tutorial-Codebase-Knowledge/PocketFlow) - 100 行 LLM 框架。让智能体构建智能体! - [Pydantic Core](https://the-pocket.github.io/PocketFlow-Tutorial-Codebase-Knowledge/Pydantic%20Core) - 仅凭 Python 类型提示,以火箭般的速度校验数据! - [Requests](https://the-pocket.github.io/PocketFlow-Tutorial-Codebase-Knowledge/Requests) - 用 Python 与互联网对话,代码简单到像作弊一样! - [SmolaAgents](https://the-pocket.github.io/PocketFlow-Tutorial-Codebase-Knowledge/SmolaAgents) - 构建小巧却实力超群的 AI 智能体! - 在 [Discussions](https://github.com/The-Pocket/PocketFlow-Tutorial-Codebase-Knowledge/discussions)! 中展示你由 AI 生成的教程 ## 🚀 快速开始 1. 克隆本仓库 ```bash git clone https://github.com/The-Pocket/PocketFlow-Tutorial-Codebase-Knowledge ``` 3. 安装依赖: ```bash pip install -r requirements.txt ``` 4. 在 [`utils/call_llm.py`](./utils/call_llm.py) 中配置 LLM 凭据。你可以将值写入 `.env` 文件。默认情况下,可通过设置 `GEMINI_API_KEY` 环境变量,使用该客户端配合 AI Studio 密钥调用 Gemini Pro 2.5。若想使用其他 LLM,可设置 `LLM_PROVIDER` 环境变量(例如 `XAI`),然后配置模型、url 和 API 密钥(例如 `XAI_MODEL`、`XAI_URL`、`XAI_API_KEY`)。若使用 Ollama,url 为 `http://localhost:11434/`,API 密钥可省略。 你也可以使用自己的模型。我们强烈推荐具备思考能力的最新模型(Claude 3.7 with thinking、O1)。运行以下命令可验证配置是否正确: ```bash python utils/call_llm.py ``` 5. 运行主脚本生成完整代码库教程: ```bash # Analyze a GitHub repository python main.py --repo https://github.com/username/repo --include "*.py" "*.js" --exclude "tests/*" --max-size 50000 # Or, analyze a local directory python main.py --dir /path/to/your/codebase --include "*.py" --exclude "*test*" # Or, generate a tutorial in Chinese python main.py --repo https://github.com/username/repo --language "Chinese" ``` - `--repo` 或 `--dir` - 指定 GitHub 仓库 URL 或本地目录路径(必填,二者互斥) - `-n, --name` - 项目名称(可选,省略时从 URL/目录推导) - `-t, --token` - GitHub 令牌(或设置 GITHUB_TOKEN 环境变量) - `-o, --output` - 输出目录(默认:./output) - `-i, --include` - 要包含的文件(例如 "`*.py`" "`*.js`") - `-e, --exclude` - 要排除的文件(例如 "`tests/*`" "`docs/*`") - `-s, --max-size` - 最大文件大小(字节,默认:100KB) - `--language` - 生成教程的语言(默认:"english") - `--max-abstractions` - 要识别的最大抽象数量(默认:10) - `--no-cache` - 禁用 LLM 响应缓存(默认:启用缓存) 应用会爬取仓库、分析代码库结构、按指定语言生成教程内容,并保存到指定目录(默认:./output)。
🐳 使用 Docker 运行 要在 Docker 容器中运行本项目,需要将 API 密钥作为环境变量传入。 1. 构建 Docker 镜像 ```bash docker build -t pocketflow-app . ``` 2. 运行容器 你需要提供 `GEMINI_API_KEY`,LLM 才能正常工作。若要分析私有 GitHub 仓库或避免速率限制,还需提供 `GITHUB_TOKEN`。 将本地目录挂载到容器内的 `/app/output`,即可在主机上访问生成的教程。 **分析公开 GitHub 仓库的示例:** ```bash docker run -it --rm \ -e GEMINI_API_KEY="YOUR_GEMINI_API_KEY_HERE" \ -v "$(pwd)/output_tutorials":/app/output \ pocketflow-app --repo https://github.com/username/repo ``` **分析本地目录的示例:** ```bash docker run -it --rm \ -e GEMINI_API_KEY="YOUR_GEMINI_API_KEY_HERE" \ -v "/path/to/your/local_codebase":/app/code_to_analyze \ -v "$(pwd)/output_tutorials":/app/output \ pocketflow-app --dir /app/code_to_analyze ```
## 💡 开发教程 - 我使用 [**Agentic Coding**](https://zacharyhuang.substack.com/p/agentic-coding-the-most-fun-way-to), 最快的开发范式构建本项目,人类只需 [设计](docs/design.md),由智能体(Agents)[编码](flow.py)。 - 秘诀是 [Pocket Flow](https://github.com/The-Pocket/PocketFlow), 一个仅 100 行的 LLM 框架,让智能体(例如 Cursor AI)为你构建 - 请查看分步 YouTube 开发教程:
Pocket Flow Codebase Tutorial