让板子当"辅导老师"?
你好,我是吴老师。
上一课板子帮你"记得"安排。今天它要帮你想问题——当个学习辅导老师。
但先问你一个直击本质的问题:你问 AI 一道题,它是"真的会",还是"按你告诉它的方式说话"?
答案藏在提示词里。同一个 AI,你给它不同的"自我介绍"和"要求",它说话的方式会完全不同——有的啰嗦、有的简洁、有的直接告诉你答案、有的引导你自己想。
本课一句话:提示词(Prompt)是给 AI 的"工作说明书",不是"命令"。 你说得越精确,AI 输出的越贴近你想要的效果。今天我带你亲眼看:同一道题,改一句提示词,AI 的回答就变一个样。
一、先让板子"开口讲题"
先别听我讲,让板子演示一遍。
请使用课程的 esp32s3-touchboard-hardware-dev Skill,
烧录本课配套程序 assets/codes/demo01_ai_tutor:
板子上列出 3 道题(勾股定理、鸡兔同笼、水的沸点),
点任意一道,板子会"讲"给你听。
烧录前把 config.real.h 的密钥覆盖进去(见 README),并填好 WiFi。
烧录后告诉我:点了"鸡兔同笼",屏幕怎么讲的?
🔑 关于密钥:这个 demo 要联网调用真实大模型(火山豆包),需要 API Key。密钥放在本机
config.real.h,烧录前再覆盖,绝不写进教案、代码里或截图。 如果教室没网,代码里设了"离线演示"兜底,也能看到交互流程。
二、"讲"和"直接给答案",差一句提示词
现在重点来了。同样的"鸡兔同笼"这道题,我让它用两种不同的提示词各讲一次,你对比。
版本 A:直接给答案
system 提示词:你是一位数学老师,请直接回答:鸡兔同笼问题怎么解。
版本 B:引导思考、分步讲
system 提示词:你是一位耐心的学习辅导老师,请用通俗易懂、分步骤的方式讲解,引导思考,适合青少年理解。
请你把两种回答都记下来,填进这张表:
| 版本 A(直接给答案) | 版本 B(分步引导) | |
|---|---|---|
| 回答有多长? | ||
| 是先给答案,还是先讲思路? | ||
| 有没有"追问"或"你自己试试" | ||
| 更像"抄作业"还是"学会方法"? |
看出区别了吗? 同样一个 AI、同样一道题,就因为 system 提示词里多了"分步骤、引导思考、适合青少年"这几句,回答就从"步骤版"变成"引导版"。
这就是本课的核心问题:AI 不是一个开关,而是一个"听话的演员"。你想让它演"耐心老师",就得把"耐心老师"的台词写清楚。
三、提示词到底在"指挥"什么?
AI 回答之前,总会先读一段叫 system 提示词的东西——那是你给它定的角色和工作方式。它就像演员上台前拿到的角色设定卡。
来看三个真实项目里用的 system 提示词(都是仓库里已验证的),你对比它们"指挥"的部分有什么不同:
| 项目 | system 提示词原文 | 它"指挥"了什么 |
|---|---|---|
| AI 学习助手(今天) | "你是一位耐心的学习辅导老师,请用通俗易懂、分步骤的方式讲解,引导思考,适合青少年理解。" | 角色(老师)+ 方式(分步讲解)+ 受众(青少年) |
| AI 聊天(第 26 课) | "你是我的AI助手,叫语音小助手,你必须用中文回答且字数不超过60个" | 角色(助手)+ 约束(中文、≤60字) |
| 你画我猜(第 27 课) | "你是猜画游戏助手。用户画了简笔画,请直接说出答案,回复尽量简短(几个字即可),不要解释、不要思考过程。" | 角色 + 任务 + 负面指令(不要解释) |
发现规律了没有? 每条提示词都由几块组成。我们给它起个名字,叫提示词的"四要素":
| 要素 | 说明 | 例子 |
|---|---|---|
| 1. 角色(你是谁) | 告诉 AI 当什么人 | "耐心的学习辅导老师" |
| 2. 任务(做什么) | 叫它具体干什么 | "分步骤讲解鸡兔同笼" |
| 3. 约束(多长/什么语言) | 限制结果 | "用中文、不超过60字" |
| 4. 负面指令(别做什么) | 明确不要什么 | "不要解释、不要直接给答案" |
一句话记住:写提示词,就是在给 AI 填这四张卡。缺一张,AI 就自己在那一项上"自由发挥"。
四、动手玩:加一句提示词,看它怎么变
现在轮到你。请把 demo01 的提示词改一改,每种改法先预测、再烧录、再记录:
| # | 我在提示词里加/改这句 | 我预测 AI 会 | 实际回答的变化 |
|---|---|---|---|
| 1 | 加上"每次只讲一步,等我回复再来下一步" | ||
| 2 | 加上"不要直接告诉答案,先问我你卡在哪" | ||
| 3 | 改成"用小朋友能听懂的话,越短越好" | ||
| 4 | 删掉"引导思考",改成"直接给出答案" |
⚠️ 一个关键观察:你可以试试让两条要求互相冲突——比如既说"分步骤引导",又说"直接给出答案"。AI 会怎么"打架"?它只能二选一(或硬着头皮两者兼顾)。这说明:提示词里互相矛盾的要求,AI 是没法替你解决的,它只会按优先级或字面意思糊弄过去。 你写得越自洽,它执行得越听话。
这正是今天最想让你带走的能力:改提示词不是"顺手加一句",而是清楚地知道我要它做什么、不要它做什么,然后一次说清。这比记住任何一条 AI 妙招都重要。
五、分析:这个 AI 项目用了哪些技术?
我们不让 AI 深挖代码,但你要能说清这个项目"从你点下问题到屏幕显示回答",中间经过了多少步、用了什么技术。看这张"流水线图":
flowchart LR
A[你点一道题] --> B[板子把问题+提示词<br/>打包成 JSON]
B --> C[通过 HTTPS POST<br/>发给云端大模型]
C --> D[云端按提示词生成回答,<br/>返回 JSON]
D --> E[板子解析 JSON<br/>取出回答文字]
E --> F[中文换行显示到屏幕]
style B fill:#22d3ee,color:#131a22
style F fill:#22d3ee,color:#131a22
style C fill:#f472b6,color:#131a22
看懂这张图的标志:青色的在板子上(打包、解析、显示),粉色的一步在云端(真正的"想"发生在云端)。
列一张"零件表":
| 技术 / 概念 | 在这里干什么 | 你之前在哪儿学过 |
|---|---|---|
| HTTP POST + JSON | 把"问题 + 提示词"打包成一段文字,发给云端的 AI | 第 19 课(HTTP/JSON) |
| HTTPS | 用加密通道发,别人偷看不了你问的问题 | 第 19 课(安全) |
| system / user 消息 | system=角色设定(提示词),user=你真正的问题 | 本课新增 |
| 大模型(云端) | 真正"理解题型、组织讲解"的地方 | 第 23 课(端侧采集云端理解) |
| JSON 解析 | 收到回复后,从 choices[0].message.content 里取出回答 | 第 19 课(deserializeJson) |
| 中文换行显示 | AI 的回答是一长串,要按屏幕宽度换行 | 第 9 课(中文显示) |
⚠️ 一个重要理解:"想"这件事不在板子上。板子只负责把问题和提示词"寄出去",把回答"收回来"、显示出来。真正的理解、推理,发生在云端的服务器上。所以它依赖网络、会延迟、也可能答错——这是第 23 课就讲过的"端侧采集、云端理解"。
⚠️ 还要理解"AI 会错":它讲的不一定对,只是个很会说话的"演员"。所以 AI 回答要核验——尤其数学题,别全信。这也是为什么提示词里要写"引导思考",而不是"告诉答案"。
一句话总结:这个项目 = 把"问题+角色要求"打包好,经 HTTPS 寄给云端大模型,再解析回答、中文显示。它没有"聪明"在板子上,聪明在云端;板子干的是打包、寄送、拆包裹、摆上桌。
六、如果它没按你想的来
| 现象 | 先查什么 |
|---|---|
| 点了没反应 / 一直"思考中" | 联网了吗?密钥填对了吗?看串口的 HTTP 状态码 |
| 屏幕显示"请求失败(code=xxx)" | code 不是 200 → 密钥错/网络断/服务限流 |
| 屏幕显示"解析失败" | 云端返回的格式和你预期不符 |
| 回答的不是你想要的风格 | 不是程序坏了,是提示词没写清——回去改 system 提示词 |
| 中文显示乱码 | 中文字库复制了吗?用了 drawUtf8() 吗? |
关键区别:前四项是"程序/网络"问题,老师能帮查;最后一项(回答风格不对)是"提示词"问题——别找老师修程序,回第四条去改你的提示词。
记住:AI"没听懂你",九成是因为你"没说清它要什么"。
七、下课前,把"提示词"讲给我听
先别看 AI 的回答,自己说一遍:
- 板子问 AI 一道题,AI 是怎么"知道"自己该当老师、该分步讲、适合青少年?——它读的是什么?
- 提示词的四要素是哪四个?各举一个例子。
- 同样一道题,为什么"直接给答案"和"引导思考"提示词会得到两种回答?
- 如果提示词里同时写"分步讲"和"直接给答案",AI 会怎样?为什么说这是"你自找的"?
- 这个 AI 项目的"想"发生在哪里?板子负责哪三步?
- 为什么 AI 数学题答案不能全信?提示词应该怎么写才更可靠?
今天请留下三样东西:你改提示词后对比的两次回答、你发现的一个"互相矛盾提示词"的现象、以及一句"写提示词我先想到的要素"。
八、最后留给你:提示词是你的"遥控器"
这一课你最该带走的,不是"AI 会用哪几个 API",而是这个:
提示词是你对 AI 的遥控器。 想让 AI 帮你做什么、不做什么、用什么语气、多长,都看你怎么"遥控"它。
| 你想要的效果 | 提示词里要写什么 |
|---|---|
| 帮我检查作业 | 角色:检查作业的老师;要求:逐题指出对错和原因 |
| 帮我背单词 | 角色:单词老师;要求:一次出 5 个,答对打勾,错了再考 |
| 帮我列计划 | 角色:规划师;要求:把一个目标拆成可执行的小步骤 |
| 懂我情绪的树洞 | 角色:倾听者;要求:先共情,再引导,不评判 |
这些会说话的规律,我们接下来的 36、37 课还会再用。 下一课,我们让板子当"单词老师",你会看到——怎么用提示词和数据结构,把"背单词"做成一件板子真能帮上忙的事。
教师备课备注(不作为课堂口播)
课程定位
- 第七章「学习助手」第 2 课,也是全章提示词能力主线的高潮课。第 34 课第一次引入"提示词=翻译需求",本课把这件事做透:系统性地讲提示词四要素(角色/任务/约束/负面指令),并让学生亲手"改一句提示词看效果变化"。
- 技术主线:HTTPS + HTTP POST + JSON 发送、大模型云端生成、JSON 解析回显、中文换行。落点是"想发生在云端,板子负责打包/寄送/拆包/显示",严格对偶第 23 课"端侧采集、云端理解"。
- 技术与原理并重:不深入代码,但要能画出"流水线图"(打包→寄→云端想→回→解析→显示)和"零件表"(每项技术干什么、在哪学过)。
- 与第 26 课(大模型对话)、第 27 课(你画我猜)对照:复用它们已有的 system 提示词,形成"提示词四要素"的对比素材库。
必须避免的错误
- 不要说"板子会思考/理解题目"。统一口径:"云端按提示词生成回答,板子负责打包、寄送、解析、显示。"
- 不要给 AI 数学答案担保。要强调"AI 可能答错,必须核验",这决定提示词里写"引导思考"而不是"告诉答案"。
- 密钥绝不进口播稿、课件截图、串口日志。演示机用
config.real.h覆盖后编译。 - 提示词训练不要变成"背提示词模板"——要让学生观察改了哪个要素、效果怎么变,而不是记固定句子。
本课新增的核心知识点
- 四要素:角色(你是谁)/ 任务(做什么)/ 约束(多长/语言)/ 负面指令(别做什么)。写提示词=填四张卡。
- system vs user 消息:
system是角色设定(提示词),user是你的提问。AI 先读 system 再答 user。 - 提示词矛盾:同时要求"分步讲"和"直接给答案",AI 无法自洽,要么按字面糊弄——正是"精确描述"的反面教材。
- 想发生在云端:联网、延迟、可能错;板子只是快递员+显示屏。
- 回答要核验:数学等答案不可全信,提示词应引导"学会方法"而非"抄答案"。
执行约束
- FQBN:
esp32:esp32:esp32s3:FlashSize=16M,PartitionScheme=app3M_fat9M_16MB,CDCOnBoot=cdc,PSRAM=opi - 依赖:
TFT_eSPI、FT6336、WiFi、WiFiClientSecure、HTTPClient、ArduinoJson;中文字库font/ChineseFont16.h。 - 凭证安全:密钥在
API接入/config.real.h(真实值,绝不进教案/源码/截图)。demo 源码顶部是YOUR_VOLCENGINE_API_KEY占位符,烧录前用本机config.real.h覆盖。 - 模型:火山引擎豆包
doubao-seed-2-0-lite-260428(OpenAI 兼容chat/completions)。temperature=0.7、max_completion_tokens=500。 - 联网:
USE_ONLINE=true需 WiFi + 有效 key;教室无网时保持USE_ONLINE=false走离线兜底,仍能演示交互与提示词对比(离线答案是预置的,提示词改动不影响离线答案——提示词对比实验需在联网模式下才真实可见)。 - 中文字库:同 34 课,
font/ChineseFont16.h+drawUtf8(),README 有复制命令。 - 屏幕排线、触摸引脚同 34 课。
课堂执行要点
- 顺序建议:demo01(现象:点题→板子讲题)→ 版本 A/B 提示词对比表(先预测再实测)→ 四要素讲解(用仓库 3 段真实提示词当素材)→ 学生改提示词实验(第四节表格,先预测后烧录)→ 流水线图 → 下课前复述。
- 灵魂追问 ①:"AI 不是一个开关,是听话的演员"——改一句 system 提示词,回答就变一个样。
- 灵魂追问 ②(本课题眼):提示词里互相矛盾的要求,AI 没法替你解决——这正是"必须精确、自洽"的原因。
- 提示词实验必须先预测后实测;离线兜底会掩盖提示词改动效果,务必联网实测。
待办与遗留
demo01_ai_tutor源码已写(含中文字库、密钥占位符、在线/离线双模式),尚未实板验证。吴老师实板验收重点:① 中文字库渲染;② 在线调用choice[0].message.content是否取到;③ 提示词改动(四要素实验)是否真实改变回答;④ WiFi/密钥配置路径是否正确。- 实机联网数据(回答长度、延迟、token 用量)待回填。
- 密钥覆盖流程(config.real.h → demo)待写成标准操作并在实机走通。