本文来自《AI 应用开发课程》月份 1 课程文档,已整理为网站文章版本。
1. 学习目标
学完本节后,你应当能够:
- 明确本月需要的软件和账户。
- 在 macOS 上搭好 Python 学习环境。
- 理解课程中的目录、项目和命令如何组织。
- 用一致的方法记录问题、实验和结论。
2. 前置知识
无。
如果你只会其他语言但不会 Python,这一节也必须从头做完。
3. 本月需要准备的环境
必需软件
HomebrewPython 3.11或Python 3.12uvgit- 一个代码编辑器,推荐 VS Code 或 Cursor
- 一个终端工具,macOS 自带 Terminal 或 iTerm2 均可
必需账户
- DeepSeek API 账户
- GitHub 账户
推荐但非必须
- Postman 或 Bruno,用于调试 API
- Obsidian 或 Notion,用于记学习日志
4. macOS 环境准备步骤
第一步:检查基础命令
在终端执行:
git --version
python3 --version
预期结果:
git能返回版本号python3版本建议不低于3.11
如果 python3 不存在,先安装 Python。
第二步:安装 uv
执行:
brew install uv
uv --version
预期结果:
- 能看到
uv版本号
第三步:创建统一学习目录
建议在你的工作区创建以下结构:
month1-workspace/
├── llm_api_lab/
├── prompt_lab/
├── fastapi-ai-service/
├── rd-assistant/
└── notes/
说明:
llm_api_lab:用于第 1 周练习prompt_lab:用于第 2 周练习fastapi-ai-service:用于第 3 周练习rd-assistant:用于第 4 周综合项目notes:记录问题、结论、复盘和截图
5. API Key 管理规则
不要把 API Key 直接写在代码里。统一放在 .env 中。
示例:
DEEPSEEK_API_KEY=your_api_key_here
DEEPSEEK_BASE_URL=https://api.deepseek.com
DEEPSEEK_MODEL=deepseek-chat
规则:
.env只能本地使用,不应提交到公共仓库- 读取配置时通过环境变量或配置类处理
- 如果将来切模型,只改配置,不要把厂商信息散落到业务代码里
6. 学习记录方法
建议你在 notes/ 下维护三类文档:
study-log.md
每天记录:
- 今天学了什么
- 跑了哪些命令
- 成功了什么
- 卡在什么地方
error-log.md
每次报错记录:
- 报错原文
- 触发条件
- 排查过程
- 解决方法
experiment-log.md
记录 Prompt、结构化输出和 Tool Calling 的实验对比:
- 使用了什么输入
- 模型返回了什么
- 哪种 Prompt 更稳定
- 哪种实现最容易失败
7. 学习时必须遵守的工程规则
- 所有项目都要创建独立目录。
- 每个项目都要有
README.md。 - 每个项目都要有最小测试。
- 每个项目都要有
.env.example。 - 每次实验要保留可复现步骤。
这些规则看起来麻烦,但它们会直接决定你后面是否能顺利做 RAG、Agent 和综合项目。
8. 推荐学习时间安排
工作日方案
- 每天
2小时 - 前
30分钟复习昨天内容 - 中间
60分钟操作文档 - 最后
30分钟整理笔记和总结
周末方案
- 每天
3-4小时 - 先做本周未完成的实验
- 再做总结和验收
9. 学习中的常见误区
误区一:只看不敲
AI 应用开发是高度实践型技能。只看文档不会形成能力。
误区二:复制即掌握
把代码复制进去能跑,不等于你会写。你必须能独立改一个字段名、加一个参数、改一段逻辑。
误区三:环境问题拖太久
环境问题超过 30 分钟还没解决,先回退到最小可运行状态,而不是继续堆更多工具。
误区四:太早关注高级主题
月份 1 不研究向量数据库、不研究复杂 Agent、不研究前端美化。当前阶段先把 Python、API、服务化和基础抽象做扎实。
10. 学习前检查清单
开始月份 1 前,确认以下项目全部完成:
- 已安装
python3 - 已安装
uv - 已准备 DeepSeek API Key
- 已创建学习目录
- 已准备代码编辑器
- 已理解
.env不应提交
11. 自测题
- 为什么 API Key 不应该直接写在代码里?
- 为什么要把不同阶段练习放在不同项目目录?
- 为什么本月需要单独维护错误日志和实验日志?
如果 3 个问题都能用自己的话答清楚,就可以进入 Python 补位模块。
12. 本章与前文关系
本章承接“学习导航”和“4 周学习节奏表”,把抽象的课程安排落地成具体准备工作。你可以把它理解为:后续所有课程运行前的准备层。
如果不把这一层做好,后面你很容易把不同性质的问题混在一起:
- 代码没写对
- 命令没跑对
- 依赖没装对
- 环境变量没加载
这会大幅提高学习挫败感。
13. 为什么课程在月份 1 一开始就强调环境纪律
很多人把环境准备视为“杂事”,但实际上,工程能力从你如何准备环境就已经开始了。
你后面在做:
uv项目初始化.env配置读取pytest测试- FastAPI 服务启动
- DeepSeek API 请求
每一步都依赖稳定、清晰、可复现的本地环境。如果环境混乱,后面你无法判断错误到底来自:
- Python 语法
- 项目结构
- 配置缺失
- API Key 无效
- 路径不一致
月份 1 的目标是建立“可诊断性”。环境准备就是可诊断性的第一层。
14. 一套推荐的本地目录组织方法
你可以照下面的方式,把“学习资料”和“练习项目”分开:
词元跳动/
├── 知识库/
│ └── AI应用开发课程/
└── month1-workspace/
├── llm_api_lab/
├── prompt_lab/
├── fastapi-ai-service/
├── rd-assistant/
└── notes/
这样组织的好处是:
- 文档与代码不混
- 每个练习项目各自独立
- 日志、截图、实验记录有单独位置
- 你后面回顾月份 1 时不会被零散文件淹没
15. 为什么推荐多个练习项目,而不是一个项目从头写到尾
这是课程设计中的一个关键取舍。
一个项目写到底的优点
- 连续感强
- 看起来更像真实项目
但它对初学者也有明显问题
- 错误会累积
- 目录会越来越重
- 很难区分“本周新增问题”和“上周遗留问题”
因此月份 1 采用“练习项目 + 综合项目”的双轨方式:
- 前三周用小项目分别练单项能力
- 第四周再把能力收束到综合项目
这比从第 1 天就扛一个大项目更适合零基础转入者。
16. 环境变量文件应该如何讲给初学者听
很多新手第一次接触 .env 时,会把它理解成“一个必须有的神秘文件”。其实更准确的理解是:
.env是本地开发阶段常见的配置承载方式- 它的作用是把“会变化的配置”从代码中拿出来
- 它尤其适合存放密钥、模型名、基础 URL、调试开关等内容
对于月份 1 来说,最重要的不是掌握所有配置管理理论,而是建立一个稳定习惯:
- 代码里不写死密钥
- 默认值集中管理
- 配置读取逻辑统一收口
这会直接影响后面 config.py 的设计。
17. 一个完整的环境准备检查流程
建议你在正式开始 Python 模块前,完整走一次下面的流程。
步骤 1:确认基础命令
git --version
python3 --version
uv --version
你此时不是为了记版本号,而是为了确认:
- 命令是否存在
- 路径是否正确
- 当前终端环境是否可用
步骤 2:确认工作目录
pwd
ls
很多后续错误,其实是因为你根本不在自己以为的目录里。
步骤 3:确认 API Key 管理方式
建立一个 .env.example,再复制为 .env。不要一开始就把真实密钥散落在多个脚本里。
步骤 4:确认学习记录位置
确保 notes/ 已存在,并至少创建:
study-log.mderror-log.mdexperiment-log.md
18. 错误示例 vs 正确示例
错误示例:把所有敏感信息写死在脚本里
API_KEY = "sk-xxxx"
BASE_URL = "https://api.deepseek.com"
MODEL = "deepseek-chat"
这种写法短期看似方便,长期会带来:
- 安全问题
- 配置散落
- 无法快速切换环境
- 多个文件状态不一致
正确示例:使用 .env + 统一读取
DEEPSEEK_API_KEY=your_api_key_here
DEEPSEEK_BASE_URL=https://api.deepseek.com
DEEPSEEK_MODEL=deepseek-chat
import os
from dotenv import load_dotenv
load_dotenv()
api_key = os.getenv("DEEPSEEK_API_KEY")
base_url = os.getenv("DEEPSEEK_BASE_URL", "https://api.deepseek.com")
model = os.getenv("DEEPSEEK_MODEL", "deepseek-chat")
这种方式的价值,不在于“更高级”,而在于“后续所有章节都能复用”。
19. 本章在研发助手项目中的位置
综合项目 rd-assistant 到第 4 周时会依赖这里确立的全部环境约定:
- 独立项目目录
.env.example- 本地
.env notes/中的学习与实验记录- 统一终端命令习惯
如果这些约定前面没有建立,到了综合项目阶段你会发现 README 很难写,别人也很难复现你的项目。
20. 本章完成后你应该具备的能力
完成本章后,你至少应该做到:
- 能清楚描述本地工作目录结构。
- 能解释
.env.example和.env的区别。 - 能说明为什么月份 1 拆成多个练习项目。
- 能记录学习日志,而不是靠临时记忆回忆问题。
21. 如果你卡在这里,先回看哪几章
- 不确定月份 1 要做出什么成果:回看 00-月份1学习导航.md
- 不清楚当前阶段时间安排:回看 01-4周学习节奏表.md
- 不清楚为什么要先搭环境而不是直接写代码:回看本章第 13 节和第 15 节
22. 从本章过渡到下一章的桥接说明
接下来进入 01-Python语言补位/01-Python最小入门.md。
环境层准备完成后,你现在需要解决的第一个核心问题是:如何从“会其他语言,但不会 Python”平滑过渡到“能读懂月份 1 后续全部代码”。后面的 Python 模块不会走“百科式语言大全”,而是专门围绕后续 AI 应用开发会用到的能力做最小且扎实的补位。