七周前你用 5 行代码第一次调通 API——今天回到起点深入引擎盖下面: 四个参数控制 AI 怎么生成、流式输出改善体验;然后学真正决定输出质量的东西:怎么问。
| 时间 | 环节 | 要点 |
|---|---|---|
| 0–8 | 开场实验 | 同一 prompt 跑两次答案不同——大模型是带概率的生成器 |
| 8–22 | 四参数 | temperature 控创意 / top_p 核采样 / max_tokens 控成本 / stop 控格式 |
| 22–32 | 猜温度互动 | 三段输出对应哪档温度?你的场景该用哪档? |
| 32–44 | 流式输出 | stream=True 逐块到达;打字机效果;yield 生成器语义 |
| 44–56 | llm_chat 封装 | 可配置调用函数——W10–W13 的基础设施;三档温度对比实验 |
| 56–68 | Prompt 五组件 | 角色/任务/约束/示例/输出格式——加一层组件提升一档 |
| 68–80 | Few-shot 与 CoT | 示例教它做什么、CoT 教它怎么想;现场对比输出质量 |
| 80–92 | 动手练习 | 运行场:build_prompt 五组件模板(f-string 版) |
| 92–100 | 小测 | 随堂小测 3 题 |
参数不是玄学:课后用 llm_chat() 做三档温度对比并记录观察。
同一个 prompt 连续调用两次——答案不一样。为什么?
心智模型:temperature 控创意,max_tokens 控成本,stop 控格式。
A 对应 temperature = 0,B 对应 1.5。你的应用场景该用哪个?(写代码?写文案?)
stream = client.chat.completions.create(
model="deepseek-chat",
messages=messages,
stream=True, # ← 关键开关
)
full = ""
for chunk in stream: # 逐块到达
delta = chunk.choices[0].delta.content
if delta:
full += delta
print(delta, end="", flush=True) # 打字机效果
本函数是 W10–W13 所有课的基础设施:
def llm_chat(prompt, system="你是课程助教", model="deepseek-chat",
temperature=0.7, max_tokens=1024, stream=False):
"""可配置的大模型调用:换模型/调温度/流式,全在这一个函数里。"""
# ... 组装 messages、调 API、处理流式/非流式 ...
return reply
输入:开心 → 输出:😊
输入:难过 → 输出:😢
输入:惊喜 → 输出:
两个示例就够它学会模式。请一步一步分析这段代码
每步说明理由,最后给结论
触发推理链,复杂问题质量显著提升。心智模型:示例教它做什么,CoT 教它怎么想。
课后用真实的 llm_chat() 跑这个模板——体会「加一层组件,输出质量提升一档」。
深入阅读:M5 模块页 · 经典笔记 12.5 装饰器 · 11.3 生成器