本讲目录
第 15 讲 · 实战:写代码与数据分析
写代码是 LLM 目前最强、验证最闭环的应用场景(第 09 讲:测试提供客观信号)。本讲给出三个层次的工作流——日常辅助、整项目开发、自动数据分析——以及"代码经验少"的使用者最该守住的一条底线:理解权不外包。
1. 三个层次,三种用法
| 层次 | 工具形态 | 你的角色 |
|---|---|---|
| L1 片段级 | 聊天框 / IDE 补全 | 写代码的人,AI 递工具 |
| L2 任务级 | 编程智能体(Claude Code 等) | 提需求、做验收的人 |
| L3 项目级 | 智能体 + 规划 + 迭代 | 产品经理 + 架构评审 |
2. L1 日常辅助:问得好,答得准
- 写小函数:给足输入输出契约——"写一个 Python 函数:输入 DataFrame 和列名,返回该列的异常值行(IQR 法),保留原索引,处理空列的边界情况,附 3 个测试用例"。契约越完整,返工越少(第 14 讲技巧 1 的代码版);
- 看不懂的代码:"逐块解释这段代码,重点说明[正则/这个 groupby 链]在做什么,然后指出可能的坑";
- 报错求医:贴完整的报错栈 + 相关代码 + "我已经试过 X"。只贴最后一行错误信息等于让医生隔着门诊病;
- 翻译:跨语言迁移("把这段 MATLAB 改写成 numpy,保持数值行为一致")是它的舒适区。
3. L2/L3 智能体开发:vibe coding 的正确姿势
用编程智能体(第 11 讲已装好)从零做一个工具的标准循环:
1. 先谈需求再动工。第一条消息别说"帮我写个记账程序",说:
我想做一个命令行记账工具,Python。需求:
- 记一笔:金额、分类、备注、日期(默认今天),存本地 CSV
- 查询:按月汇总、按分类汇总
- 我是初学者,代码请保持简单直白,不要过度设计
先给我:文件结构 + 数据格式 + 你打算怎么拆步骤。我确认后再写代码。
"先方案后代码"这一步能拦下 80% 的方向性返工(第 14 讲技巧 6、7 的合体)。
2. 小步走,步步验。让它一次实现一个功能,你跑一下、看一眼再继续。智能体一口气改十个文件的模式,出错时你将无从审起。
3. 报错直接回喂。跑出错就把报错原样贴回去——"看报错→改→再跑"这个循环它自己能转(第 08 讲循环工程),你只需在方向跑偏时踩刹车。
4. 验收要动真格。它说"完成了"不算完成(第 08 讲:不让模型自己宣布成功):亲手跑主流程、试边界输入(空文件、负数、中文路径)、让它"写一组测试并跑给我看"。
5. 收尾三连:让它写 README(怎么运行)、把过程中的设计决定记进注释、生成 requirements.txt。三个月后的你会感谢这一步。
给代码经验少的学习者
vibe coding 的甜蜜陷阱:项目跑起来了,你却讲不出它为什么能跑。两条自救纪律:每个模块让 AI 逐块讲解,直到你能复述"这块为什么这么设计";以及定期做"无 AI 挑战"——小改动自己动手写,写不动就说明理解已经悬空(第 12 讲依赖性自检的代码版)。你的目标是"借 AI 写出超出自己水平的代码,同时把自己的水平拉上去",前半句人人会,后半句才是本课程的要求。
4. 自动数据分析:从 CSV 到报告
数据分析是"智能体 + 代码执行"的天然场景,流程已经高度成熟:
标准工作流(聊天产品的代码解释器 / 编程智能体皆可):
- 给数据 + 给背景:上传 CSV,说清每列含义、数据怎么来的、你关心什么问题——列名叫
var3而你不解释,分析必然肤浅; - 先探索后假设:"先做探索性分析:形状、缺失、分布、异常值,输出你观察到的 5 个最值得追问的现象"——让它当侦探,别一上来就要结论;
- 追问与钻取:对有意思的现象连环追问("按地区拆开看""控制价格后还成立吗");
- 产出:让它输出图 + 完整可复跑的脚本——脚本是交付物的一部分,保证分析可复现(科研场景这是硬要求)。
三条红线(第 13 讲红线三的展开):
- 统计方法要说理:"为什么选这个检验?前提假设满足吗?"——不接受黑箱 p 值;
- 关键数字抽查:随机挑两个汇总数字,用 Excel/手工透视核对——静默的数据对齐错误比崩溃可怕;
- 相关不是因果:让它明确区分"数据显示相关"与"可以下因果结论",并列出混杂因素。
动手:跑 labs/lab10_auto_analysis.py——一个微型"分析智能体":你给它一个 CSV,它(通过 DeepSeek API)自主决定写什么分析代码、执行、解读结果再决定下一步。这是第 08/09 讲循环工程 + 本讲工作流的合体演示,也是课程实验的收官之作。
5. 常见问题速答
- 它写的代码风格老旧/用了废弃 API?——知识截止(第 14 讲坑 5)。给它贴最新文档片段,或明确指定版本:"用 pandas 2.x 的写法";
- 改 A 坏了 B?——上下文里没有 B 的信息。用智能体(它能读全项目)而非聊天框贴片段;重要项目上 git,每步可回滚(智能体时代 git 从"团队协作工具"变成了"个人后悔药",务必用上);
- 生成的代码越改越乱?——上下文腐烂(第 14 讲坑 3)。新开会话,只带上"当前代码 + 我要什么"重新开始;
- 什么时候不该用 AI 写?——安全敏感(鉴权、支付)、性能关键路径、你完全无法验证正确性的领域。这些地方要么自己写,要么找人审。
本讲小结
- 三层用法各就各位:片段问聊天框,任务交智能体,项目当产品经理;
- 智能体开发五步:先方案→小步走→回喂报错→动真格验收→收尾三连;
- 数据分析四步:给背景→先探索→再钻取→交脚本;三条红线防静默错误;
- 底线:理解权不外包——能复述设计原因,才算你的代码。
下一讲从代码切到图像:文生图的原理(扩散模型,给你的数学背景加一点推导彩蛋)与实操(提示词结构、工具选择、版权边界)。