你好,我是吴老师。这一份是给你自己读的,不是上课抄的笔记。前几课你让板子"说话""听写",这一课让它更厉害一点——当你的聊天对象。你对它说一句话,它回你一段话,还念给你听。
读完之后你应该能:说清"板子问 AI 一次"有哪几步(打包、寄出、生成、拆回信);认出请求体 JSON 里的
model、提示词、你的问题;看懂一行 system 提示词里的三个指令(人设/语言/字数);说出 AI 回答有哪几种可能"不算数"的情况,以及为什么重要的事要核验。 用时:约 60–90 分钟。 准备:一块 ESP32-S3 触摸屏板、能上外网的 WiFi、你自己的大模型 API key(只放本机配置,别写进本课件)。
一、这课我们做一件事:让板子回答你
我们让板子当会说回答的聊天对象:你按住 BOOT 说一句"今天天气怎么样?",放手。板子会:先听写成字 → 寄给大模型 → 大模型回答 → 板子把回答显示出来、再念出来。
先记住一个观察点:前几课板子都是把你给的东西加工一下。这一课不一样——板子并没有"懂",它只是把你的问题当成一封信寄出去,等一封回信。
本课大问题:板子回答你的,是它"脑子里长出来"的,还是"别处寄回来"的?如果是寄回来的,那"思考"发生在哪?
二、动手:让板子开口聊天
烧录 demo01_ai_chat(需要 WiFi 和 key)。按住 BOOT,说一句"今天天气怎么样?",放手。先别看别的,把它每一步的表现记下来。
| 我观察到的现象 | 记录 |
|---|---|
| 板子先做了什么?(有没有"录音→识别"的过程?) | |
| 识别出来的字,和你说的一致吗? | |
| 回答是现在才出现,还是它本来就藏在板子里? | |
| 它说话的口吻,像不像一个叫"语音小助手"的人?哪里像? | |
| 回答是怎么到你面前的——直接放出来,还是先显示字、再念出来? | |
| 从放手到听到,你等了大约几秒? |
再换两个问题试试:说"讲一个 30 字的小故事给我听",它口吻/长短变了吗?再说"用英文跟我说一句话",它又变了没有?每次换问题,都把现象记下来。
三、看懂那封"信":一次问 AI 的四步
你问的那一下,背后是一场接力。注意和前几课对比——板子全程只是"打包 + 拆回信",中间那段"想"它碰都不碰。
| 步骤 | 谁在做 | 干什么 |
|---|---|---|
| 1 打包成 JSON | 板子 | 把"你的问题 + 一段提示词"组装成一封信 |
| 2 寄出 | 板子 | 用 HTTP POST 把信寄给云端大模型 |
| 3 生成回答 | 云端 | 大模型先读提示词(记住自己是谁、怎么说话),再答你的问题 |
| 4 拆回信 | 板子 | 把回答 text 拆出来 → 显示 + TTS 朗读 |
关键在第 1、3 步:第 1 步进 JSON 的提示词,决定了 AI 怎么答;第 3 步是云端在"想",板子只在旁边等着收。
板子寄出的不是大白话,是一份 JSON。里面有四样:
model(你找哪位"老师",即大模型型号ID)、messages[0](role=system,那段提示词,给 AI 的"入职说明书")、messages[1](role=user,你的问题)、temperature(数字,控制它"稳不稳")。你只要知道:板子把"问谁、怎么问、问什么"打包进信里寄出去。
四、那个"入职说明书":system 提示词
这一课的核心,就是看懂一行 system 提示词。我们这个大模型用的是:
你是我的AI助手,叫语音小助手,你必须用中文回答且字数不超过60个。
你看,就这一句,它包含三个明确指令:
| 提示词里的指令 | 它"指挥"了什么 | 没写它会怎样 |
|---|---|---|
| 你是谁(AI助手,叫语音小助手) | 让 AI 确立"小助手"人设 | 可能答得不像助手 |
| 用中文回答 | 规定输出语言 | 可能答英文 |
| 字数不超过60个 | 规定回答长度 | 可能长篇大论 |
✅ 你要练的用法:"叫人设 + 定语言 + 限字数"是三个最常用的约束。 改一个词,AI 口吻就变。你改了"AI助手"叫"数学老师",它就马上换成讲题口吻。
五、一个必须想明白的边界:AI 会说错
AI 不是"查字典",它是"生成看起来合理的话"。它有这些回答边界:
| 情况 | AI 可能怎样 | 为什么 |
|---|---|---|
| 事实错 | 一本正经地说错 | 它"觉得对",不代表"真对" |
| 编造 | 编出不存在的事 | 它想"填空" |
| 偏科 | 高深的会、基础的乱编 | 它按"口吻"生成,不按"对错" |
| 过时 | 用过时的信息 | 它的知识有"截止日期" |
⚠️ 比喻边界:说 AI"像人",只是说它说话像人,不是它和人一样会分辨对错。它是个"很会措辞的生成器",不是"真理来源"。所以——重要的事(医生建议、法律、考试答案、事实)要另找来源核验。好多项目会在提示词里加一句"不确定就说不知道/标注待核验",就是教它别硬编。
回答最后是怎么"念"出来的?拿到那句 text,板子把它交给上一课(第 25 课)那套文字转语音:整理一下寄给百度 TTS,收回声音再播放。上半场"寄出去问 AI"是新课,下半场"念出来"是旧本领。
六、动手做实验:改那个"说明书"
改 system 提示词,每种改动先预测、再烧录、再记录:
| # | 我把提示词改成 | 我预测 AI 会 | 实际变化 |
|---|---|---|---|
| 1 | "AI助手" → "耐心的数学老师,用通俗的话讲题" | ||
| 2 | "字数不超过60个" → "讲一个30字的小故事" | ||
| 3 | "必须用中文" → "必须用英文" | ||
| 4 | 结尾加"如果不知道就说不知道,别编" |
盯住第 1、4 行:改了"你是谁",口吻立刻换人;加了"不知道就说不知道",是教它别硬编。这就是你亲手验证的——提示词决定了 AI 怎么答,也包括它答错时怎么老实交代。
拆台实验:把 WiFi 断开,再按住 BOOT 问一次。——它还能回答吗?不能回答,正说明那句回答不是从板子里长出来的。做完把网连回去。
七、过关检查:看你会不会
先别看 AI,自己答一遍:
- 板子问 AI 一次,有哪几步?system 和 user 消息分别装了什么?
- 那行 system 提示词,包含哪三个指令?
- 把"AI助手"改成"数学老师",口吻为什么会变?
- AI 回答一定对吗?它可能在哪几种情况"不算数"?
- 为什么重要的事要核验 AI 的回答?提示词加"不知道就说不知道"是在干嘛?
- 这一课你学会的"提示词三约束"是哪三样?
今天请留下三样东西:一个你用提示词改出的"新口吻回答"、一个你觉得"AI 可能说错"的回答、一句"怎么看 AI 回答边界"的话。
八、创意方向
| 作品方向 | 描述给 AI 的效果 | 我想请你继续想 |
|---|---|---|
| 各科问答小老师 | 改提示词让它当"数学/英语/科学老师",问哪科换哪科口吻 | 想让它"题库"和"讲解"都管住? |
| 古诗接龙机 | 提示词让它"接下一句",回答用 TTS 念出来 | 怎么防止它接不到就瞎编? |
| 会报菜名的点菜助手 | 让 AI 按"想吃素的"给你推荐菜 | 要不要加"别说太贵"? |
| 温言相劝的树洞 | 提示词设成"很温和",听你吐槽给回应 | 想让它"提醒你别走极端",怎么写? |
| 不上头的"防骗员" | 让 AI 判断一句话"像不像骗人的",答"像/不像+为什么" | 它会不会自己也被骗?——这就是要核验的原因 |
下一课玩你画我猜:你画一张图让 AI 猜你画的是什么。那里的提示词还要多一句"不看思考过程、直接说答案"。又是同一个道理:提示词决定 AI 怎么答。