第3章实践:建立一套可交接的AI学习工作台
完成标准不是“我这里能聊天”,而是另一位同学能根据你的记录复现一次安全问答。
1. 项目结果
本项目用一个很小的问题验证完整链路:
课程工作区 → Notebook自检 → 选择模型路径 → 最小问答
→ 人工复核 → 故障排查 → 保存基线与状态页
完成后应得到五类证据:
- 运行过的
notebooks/ch03_environment_check.ipynb; - 一条连通结果和一条模型回答;
records/ch03_ai_output.md中的提示词、回答与核验;records/ch03_baseline_template.md环境基线;- 一次故障排查记录和
qwen_code_rules_student.md中自己补充的Qwen Code规则。
2. 为什么这也是人工智能实践
这一章暂时不训练模型,而是识别AI应用的基本结构。模型服务提供生成能力,编辑器组织工程,Notebook保存实验,Qwen Code帮助分析和修改,人负责授权、验证和交付。后续的数据模型、RAG、工具调用、智能体和物理AI项目都会复用这条链路。
三个判断贯穿全书:
- 可用:能完成一次最小问答,失败也有明确状态;
- 可复现:模型、提示词、结果和环境信息有记录;
- 可确认:AI先说明拟做动作,人确认后才修改或运行。
3. 准备材料
- 已安装VS Code、Python与Jupyter支持的课程计算机;
- 可选:VS Code中的Qwen Code;
- 可选:课程提供的本地Qwen服务或合规云端接口;
- 不需要真实业务资料。本项目只使用教材中的虚拟问题;
- 第一次学习只需要Python标准库,不要求安装额外包。
先在本目录运行:
python verify.py
看到所有检查为 true,说明样板文件和离线主路径正常。
4. 三条模型路径
| 路径 | 何时使用 | 学生需要填写 | 密钥规则 |
|---|---|---|---|
mock离线模拟 |
所有人第一次运行;断网或服务故障 | 无 | 不读取密钥 |
local本地Qwen |
本机或局域网已有OpenAI兼容服务 | 课程提供的地址、模型名 | 若服务需要授权,只用环境变量 |
cloud课程云端接口 |
学校已授权且课堂允许联网 | 课程地址、模型名、环境变量名 | 禁止写入Notebook、截图或提交包 |
mock不是“假装学会调用模型”,它把工作区、请求、结果、复核、故障与证据这条流程先稳定下来。连通真实模型后,只切换配置,不改学习任务。
5. 课堂过程(2课时)
第1轮:先跑通最小闭环
- 在VS Code打开
teaching_resources文件夹。 - 打开
notebooks/ch03_environment_check.ipynb,按顺序运行到离线回答。 - 检查回答是否涉及CPU/GPU分工、内存或显存限制、模型大小取舍。
- 在复核单元格写出“可信内容、需核验内容、核验办法”。
- 保存模型输出记录和环境基线。
第2轮:让失败变得可解释
- 将Notebook中的
FAULT改为"service_offline"; - 运行故障单元格,观察错误类型,而不是重装软件;
- 按“保留现场→核对配置→降级到mock→求助”的顺序记录处理;
- 再改为
"wrong_model",比较两类故障的不同; - 把
FAULT恢复为"none"。
第3轮:与Qwen Code协同,但保留决定权
把下面的任务说明发给Qwen Code:
请只阅读本章README和Notebook,不修改文件。先告诉我:
1. 你准备读取哪些文件;
2. 你准备运行什么;
3. 可能产生什么结果;
4. 哪些动作需要我确认。
得到我确认后,才能建议最小改动。不得读取本章以外目录,
不得查找或输出密钥,不得删除、覆盖、联网发送或批量修改文件。
学生应先阅读计划,再决定是否允许。不要启用自动批准全部命令。
完整固定边界和本次批准范围写在 qwen_code_rules_student.md。课堂应复制学生副本后填写,保留AI提出的计划与人的批准记录。
6. 学生必改点
Notebook中有两个明确的修改点,必须由学生本人完成:
STUDENT_RULE:补充一条适合自己课堂环境的Qwen Code规则;STUDENT_PREDICTION:在模拟故障前预测会看到什么,以及第一步如何处理。
建议规则示例仅供理解,不能原样提交:
任何修改必须限定在当前章节目录,并先列出文件名、改动理由和验证方法。
若课堂提供真实模型,再完成第三个修改点:在教师指导下把 MODE 改为 local 或 cloud,只填写课程给定的服务信息。
7. 故障树
| 现象 | 先保存什么 | 第一步 | 不要做什么 |
|---|---|---|---|
| 服务未启动/超时 | 错误类型、时间、模式 | 核对服务状态和地址/端口 | 不要立即重装全部软件 |
| 模型名错误 | 模型名和返回信息 | 对照课程模型卡 | 不要盲猜或下载大模型 |
| 授权失败 | HTTP状态、环境变量名 | 联系教师核对授权 | 不要打印或粘贴密钥 |
| Notebook只显示JSON | 截图或现象描述 | 检查Jupyter扩展和打开方式 | 不要改Notebook原始JSON |
| 回答看似正确 | 原提示词和回答 | 按核验表查证关键点 | 不要直接作为事实提交 |
任何真实共享服务的启动、停止和配置修改都交给授课负责人。本章故障使用安全模拟,不影响同学。
8. 验收口试
学生应能现场回答:
- 为什么网页能回答一次还不等于环境可复现?
mock、local、cloud三条路径的差异是什么?- 模型回答中哪一条经过了核验,证据是什么?
- “服务未启动”和“模型名错误”怎样区分?
- 你的Qwen Code规则阻止了什么风险?
验收只看最终答案不够。还要查看提示词、运行状态、人工判断、故障记录和学生亲自完成的修改。
9. 进一步阅读
联网资料会变化,课程帮助页应记录访问日期和适用版本。建议优先查看:
- VS Code官方文档:工作区、Python与Notebook使用;
- Python中文文档:本项目标准库代码;
- Jupyter官方文档:Notebook概念与使用;
- 阿里云百炼模型服务文档:Qwen云端服务与接口,以学校授权为准;
- DeepSeek API文档:用于云端路径对比,不是本章必需项;
- Qwen Code官方文档:AI协同开发、模型接入与审批机制。
若课堂网络无法访问上述网站,使用本资源中的说明和教师下发的模型卡即可完成主线,不因外部网站不可用阻断学习。