增加每章节 README 文件

This commit is contained in:
2026-09-22 15:57:59 +08:00
parent 8e86665096
commit 9445061c76
49 changed files with 3815 additions and 6 deletions
@@ -0,0 +1,55 @@
# Python 高级编程之基础巩固
> 所属:阶段一 · 前置核心基础
> 目标:巩固 Python 类型注解、dataclass、异常处理、上下文管理器等基础功底,是后续所有阶段的语言基座。
---
## 📌 学习目的
巩固 Python 类型注解、dataclass、异常处理、上下文管理器等基础功底,是后续所有阶段的语言基座。
## ✅ 学习要求(前置条件)
已完成 Python 入门语法(变量 / 函数 / 类),能独立写 100 行左右的脚本。
## 📚 主要学习内容
- 类型注解:`typing` / `TypeAlias` / `NewType` / `Optional` / `Union`
- `dataclass` 数据类(含 `field`、`frozen`、`post_init`)
- 异常处理:`try/except/else/finally` + 异常链 `raise from` + 自定义异常层级
- 上下文管理器:`with` 协议 / `@contextmanager` / `contextlib`
- 模块与包:`__init__.py` 的语义 / 相对导入 / 命名空间包
## 📖 对应 docs
- 目录:[`docs/01-阶段一-前置核心基础/`](../../docs/01-阶段一-前置核心基础/)(按目录名里的 `第 X 篇` 对应)
- 在 docs 目录里找到对应的小点 markdown 文件阅读详细理论。
## 🛠️ 建议练习
- [ ] 写一个支持嵌套的 `dataclass` 配置加载器(含默认值校验)
- [ ] 实现可复用的计时 / 临时目录上下文管理器
- [ ] 构造「连接池用完即抛」的自定义异常链路
## 🏁 完成后达成标准
- [ ] 能熟练使用类型注解与 dataclass 定义数据结构
- [ ] 能用上下文管理器封装任意资源的获取与释放
- [ ] 能写出层级清晰的自定义异常体系
---
## 🚀 运行提示
```bash
# 激活根目录的虚拟环境
cd /Users/jack/source/Demo/py/demo_python_agent
source .venv/bin/activate # 或直接用 uv run ...
# 进入本章目录
cd code/001_phase1_foundations/01_python_advanced_basics
# 跑你的练习文件
uv run python your_exercise.py
```
@@ -0,0 +1,55 @@
# Python 高级编程之进阶语法
> 所属:阶段一 · 前置核心基础
> 目标:掌握装饰器、生成器、描述符、元类等进阶特性,能写出「抽象可复用」而非「复制粘贴」的代码。
---
## 📌 学习目的
掌握装饰器、生成器、描述符、元类等进阶特性,能写出「抽象可复用」而非「复制粘贴」的代码。
## ✅ 学习要求(前置条件)
已完成「01_python_advanced_basics」。
## 📚 主要学习内容
- 装饰器:函数装饰器 / 类装饰器 / 带参装饰器 / `functools.wraps`
- 生成器与 `yield` / `yield from` / `async for`
- 描述符协议:`__get__` / `__set__` / `__delete__`(理解 `@property` 底层)
- 迭代器协议:`__iter__` / `__next__` / `itertools`
- 元类基础:`type` / `__init_subclass__` / `ABCMeta`
## 📖 对应 docs
- 目录:[`docs/01-阶段一-前置核心基础/`](../../docs/01-阶段一-前置核心基础/)(按目录名里的 `第 X 篇` 对应)
- 在 docs 目录里找到对应的小点 markdown 文件阅读详细理论。
## 🛠️ 建议练习
- [ ] 实现一个带超时与缓存的函数装饰器
- [ ] 写一个分批读取大文件的生成器
- [ ] 用描述符实现一个类型校验的字段系统(类 `pydantic.Field`)
## 🏁 完成后达成标准
- [ ] 能写任意结构的装饰器并理解闭包变量捕获
- [ ] 能用生成器改造长列表为流式处理
- [ ] 能解释描述符与 property 的关系
---
## 🚀 运行提示
```bash
# 激活根目录的虚拟环境
cd /Users/jack/source/Demo/py/demo_python_agent
source .venv/bin/activate # 或直接用 uv run ...
# 进入本章目录
cd code/001_phase1_foundations/02_python_advanced_syntax
# 跑你的练习文件
uv run python your_exercise.py
```
@@ -0,0 +1,55 @@
# Python 高级编程之并发与异步
> 所属:阶段一 · 前置核心基础
> 目标:理解多线程 / 多进程 / 协程三种并发模型,能为 IO 密集 vs CPU 密集任务选对工具。
---
## 📌 学习目的
理解多线程 / 多进程 / 协程三种并发模型,能为 IO 密集 vs CPU 密集任务选对工具。
## ✅ 学习要求(前置条件)
已完成「01_python_advanced_basics」与「02_python_advanced_syntax」。
## 📚 主要学习内容
- GIL 的影响与绕过(多进程 vs C 扩展)
- `threading` 线程池 / `concurrent.futures`
- `multiprocessing` 进程池与共享状态
- `asyncio`:事件循环 / `async/await` / Task / gather
- 异步上下文与同步代码互操作:`asyncio.to_thread` / `run_in_executor`
## 📖 对应 docs
- 目录:[`docs/01-阶段一-前置核心基础/`](../../docs/01-阶段一-前置核心基础/)(按目录名里的 `第 X 篇` 对应)
- 在 docs 目录里找到对应的小点 markdown 文件阅读详细理论。
## 🛠️ 建议练习
- [ ] 用线程池并发抓取 10 个 URL 的标题并计时
- [ ] 用 `asyncio.gather` 并发调用 5 个模拟 LLM 接口
- [ ] 对比多线程 / 多进程 / 协程在 IO 密集任务上的耗时差异
## 🏁 完成后达成标准
- [ ] 能说清 IO 密集用 asyncio,CPU 密集用 multiprocessing
- [ ] 能写正确的 `async/await` 代码并处理并发异常
- [ ] 能将同步阻塞调用丢进线程池不阻塞事件循环
---
## 🚀 运行提示
```bash
# 激活根目录的虚拟环境
cd /Users/jack/source/Demo/py/demo_python_agent
source .venv/bin/activate # 或直接用 uv run ...
# 进入本章目录
cd code/001_phase1_foundations/03_python_concurrency_async
# 跑你的练习文件
uv run python your_exercise.py
```
@@ -0,0 +1,55 @@
# Python 高级编程之核心工具库
> 所属:阶段一 · 前置核心基础
> 目标:掌握 pydantic / loguru / tenacity / python-dotenv / pandas 这五个几乎每个 Agent 项目都用得到的库。
---
## 📌 学习目的
掌握 pydantic / loguru / tenacity / python-dotenv / pandas 这五个几乎每个 Agent 项目都用得到的库。
## ✅ 学习要求(前置条件)
已完成「01_python_advanced_basics」。
## 📚 主要学习内容
- `pydantic v2`:`BaseModel` / `model_validate` / `model_json_schema` / 脏 JSON 兜底
- `loguru`:结构化日志 / `logger.exception` / 日志分级
- `tenacity`:重试三要素(何时停 / 等多久 / 重试什么)+ 指数退避
- `python-dotenv`:`.env` 加载 / 环境变量管理 / `.gitignore`
- `pandas` / `numpy`:选列 / 过滤 / groupby 聚合 / 只喂摘要控 token
## 📖 对应 docs
- 目录:[`docs/01-阶段一-前置核心基础/`](../../docs/01-阶段一-前置核心基础/)(按目录名里的 `第 X 篇` 对应)
- 在 docs 目录里找到对应的小点 markdown 文件阅读详细理论。
## 🛠️ 建议练习
- [ ] 用 pydantic 校验并恢复模型输出的脏 JSON(```json 包裹 / 注释 / 截断)
- [ ] 用 loguru 给「LLM 调用 → 工具执行」全链路打 INFO 日志
- [ ] 写一个带指数退避的 tenacity 重试装饰器,只重试网络异常
## 🏁 完成后达成标准
- [ ] 能用 pydantic 校验模型 JSON 输出 + 失败兜底
- [ ] 能用 tenacity 重试网络异常,参数错误 fail-fast
- [ ] 能搭好分层项目骨架 + pytest + ruff + mypy 质量门禁
---
## 🚀 运行提示
```bash
# 激活根目录的虚拟环境
cd /Users/jack/source/Demo/py/demo_python_agent
source .venv/bin/activate # 或直接用 uv run ...
# 进入本章目录
cd code/001_phase1_foundations/04_python_core_toolkits
# 跑你的练习文件
uv run python your_exercise.py
```
@@ -0,0 +1,55 @@
# 大模型基础原理
> 所属:阶段一 · 前置核心基础
> 目标:建立对 LLM 的应用层认知:能看懂模型能力边界、合理设置采样参数、理解上下文窗口限制。
---
## 📌 学习目的
建立对 LLM 的应用层认知:能看懂模型能力边界、合理设置采样参数、理解上下文窗口限制。
## ✅ 学习要求(前置条件)
无(概念为主),可与「06_llm_api_in_practice」并行。
## 📚 主要学习内容
- LLM / Token / 上下文窗口与计费
- 采样参数:`temperature` / `top_p` / `top_k` 与工具调用场景推荐 0~0.3
- Embedding:把文本映射成向量,语义相近则向量距离近
- Function Calling:模型按 tools Schema 输出「调用哪个工具、传什么参数」
- 幻觉与 RAG 抑制思路
## 📖 对应 docs
- 目录:[`docs/01-阶段一-前置核心基础/`](../../docs/01-阶段一-前置核心基础/)(按目录名里的 `第 X 篇` 对应)
- 在 docs 目录里找到对应的小点 markdown 文件阅读详细理论。
## 🛠️ 建议练习
- [ ] 用同一 prompt 在不同 temperature 下生成 3 次,对比随机性
- [ ] 用 sentence-transformers 把 5 条相似语料烤成 embedding 并算两两余弦相似度
- [ ] 画一张「输入 → 上下文窗口 → 输出」的 token 流转图
## 🏁 完成后达成标准
- [ ] 能说清 Token / 上下文窗口 / 采样的语义
- [ ] 能给工具调用场景合理设置 temperature
- [ ] 能区分 Embedding 与 Function Calling 的用途
---
## 🚀 运行提示
```bash
# 激活根目录的虚拟环境
cd /Users/jack/source/Demo/py/demo_python_agent
source .venv/bin/activate # 或直接用 uv run ...
# 进入本章目录
cd code/001_phase1_foundations/05_llm_fundamentals
# 跑你的练习文件
uv run python your_exercise.py
```
@@ -0,0 +1,55 @@
# 主流模型 API 实战
> 所属:阶段一 · 前置核心基础
> 目标:能用一套代码对接 OpenAI / Claude / DeepSeek / Ollama 等多家模型,并掌握流式调用与错误码处理。
---
## 📌 学习目的
能用一套代码对接 OpenAI / Claude / DeepSeek / Ollama 等多家模型,并掌握流式调用与错误码处理。
## ✅ 学习要求(前置条件)
已完成「05_llm_fundamentals」。
## 📚 主要学习内容
- OpenAI 兼容生态:换 base_url 即换模型(DeepSeek / Ollama / vLLM)
- Claude 原生 SDK 与 OpenAI 格式的三处差异(system 位置 / content blocks / tool_calls)
- 流式调用:`stream=True` / `chunk.choices[0].delta.content` 过滤
- 错误码处理:429 / 401 / 404 / 5xx 的语义与处置
- 本地部署:Ollama 调试 / vLLM 生产推理
## 📖 对应 docs
- 目录:[`docs/01-阶段一-前置核心基础/`](../../docs/01-阶段一-前置核心基础/)(按目录名里的 `第 X 篇` 对应)
- 在 docs 目录里找到对应的小点 markdown 文件阅读详细理论。
## 🛠️ 建议练习
- [ ] 用 OpenAI SDK 对接 DeepSeek(仅改 base_url)
- [ ] 实现一个流式接口:逐 chunk 拼接并打印
- [ ] 写一个分类处置 429/401/404/5xx 的重试函数
## 🏁 完成后达成标准
- [ ] 能用同一套代码切换不同模型(含流式)
- [ ] 能用 Ollama 本地部署并完成一次工具调用全流程
- [ ] 能为 429/5xx 写退避重试,对 401/404 直接 fail-fast
---
## 🚀 运行提示
```bash
# 激活根目录的虚拟环境
cd /Users/jack/source/Demo/py/demo_python_agent
source .venv/bin/activate # 或直接用 uv run ...
# 进入本章目录
cd code/001_phase1_foundations/06_llm_api_in_practice
# 跑你的练习文件
uv run python your_exercise.py
```
@@ -0,0 +1,55 @@
# Prompt 工程核心
> 所属:阶段一 · 前置核心基础
> 目标:掌握让模型稳定输出符合要求结果的提示设计技巧。
---
## 📌 学习目的
掌握让模型稳定输出符合要求结果的提示设计技巧。
## ✅ 学习要求(前置条件)
已完成「05_llm_fundamentals」。
## 📚 主要学习内容
- 指令设计:角色 + 任务 + 约束 + 输出格式
- Few-shot:放若干「输入→输出」示例让模型模仿
- CoT(思维链):引导模型先逐步推理再给答案
- 结构化输出:要求 JSON / YAML 输出 + pydantic 兜底
- ReAct Prompt:思考 → 行动 → 观察 三段式
## 📖 对应 docs
- 目录:[`docs/01-阶段一-前置核心基础/`](../../docs/01-阶段一-前置核心基础/)(按目录名里的 `第 X 篇` 对应)
- 在 docs 目录里找到对应的小点 markdown 文件阅读详细理论。
## 🛠️ 建议练习
- [ ] 用 Few-shot 写一个稳定的「意图分类器」prompt
- [ ] 写一个 CoT prompt,让模型拆解数学题步骤
- [ ] 设计一个 ReAct prompt,约束模型按 思考/工具/观察 三段回答
## 🏁 完成后达成标准
- [ ] 能用 Few-shot / CoT 显著提升模型输出稳定性
- [ ] 能让模型稳定按 JSON / 表格等结构化格式输出
- [ ] 能写出清晰的 ReAct 风格 prompt
---
## 🚀 运行提示
```bash
# 激活根目录的虚拟环境
cd /Users/jack/source/Demo/py/demo_python_agent
source .venv/bin/activate # 或直接用 uv run ...
# 进入本章目录
cd code/001_phase1_foundations/07_prompt_engineering
# 跑你的练习文件
uv run python your_exercise.py
```
@@ -0,0 +1,54 @@
# 软件工程与基础设施
> 所属:阶段一 · 前置核心基础
> 目标:补上 Git、FastAPI、Docker、PostgreSQL、Redis 这四根工程地基,让 Agent 能从「跑通」变成「可维护」。
---
## 📌 学习目的
补上 Git、FastAPI、Docker、PostgreSQL、Redis 这四根工程地基,让 Agent 能从「跑通」变成「可维护」。
## ✅ 学习要求(前置条件)
已完成阶段一前 7 个小点中的任意 4 个。
## 📚 主要学习内容
- Git 进阶:rebase vs merge / 分支流 / cherry-pick
- FastAPI:路由 / Pydantic 模型 / SSE 流式 / Depends 依赖注入
- 容器化:Dockerfile 分层 / docker-compose 一键拉起
- 数据库:PostgreSQL 事务 / Redis TTL / SQLAlchemy 2.x
## 📖 对应 docs
- 目录:[`docs/01-阶段一-前置核心基础/`](../../docs/01-阶段一-前置核心基础/)(按目录名里的 `第 X 篇` 对应)
- 在 docs 目录里找到对应的小点 markdown 文件阅读详细理论。
## 🛠️ 建议练习
- [ ] 实现一个带 SSE 流式的 FastAPI 接口并 curl 测试
- [ ] 写一个多阶段 Dockerfile,按「先拷依赖再拷源码」分层
- [ ] 用 SQLAlchemy 写一段「写任务 + 写明细」的事务代码
## 🏁 完成后达成标准
- [ ] 能用 FastAPI 实现 SSE 流式接口并跑通
- [ ] 能编写多阶段 Dockerfile 并 compose 拉起应用 + Redis
- [ ] 会用 Redis TTL 与 PostgreSQL 事务
---
## 🚀 运行提示
```bash
# 激活根目录的虚拟环境
cd /Users/jack/source/Demo/py/demo_python_agent
source .venv/bin/activate # 或直接用 uv run ...
# 进入本章目录
cd code/001_phase1_foundations/08_software_engineering_basics
# 跑你的练习文件
uv run python your_exercise.py
```