小膳陪你 · 儿童饮食健康产品全链路
这是什么
一套可直接复用的产品全链路蓝图,覆盖四个环节:
品牌站点(自测 + 预约表单) → 云端预约表 → 二维码海报物料 → 微信小程序 AI 助手(免密钥直连大模型)
它不是玩具 demo,而是从真实上线过程中沉淀出来的:每一步的确切参数、脚本、踩过的坑、以及部署与排错的对照表都写死在里面,照着做就能把同类产品重新跑通一遍。
适合谁
做健康科普、咨询顾问、内容 IP,需要「站点获客 + 小程序 AI 助手承接」组合的从业者。
你会得到什么
| 环节 | 产出 |
|---|---|
| 品牌站点 | 单页静态站:自测问卷 + 预约表单(写入云端表) |
| 云端表 | appointments 表结构与匿名权限边界 |
| 海报物料 | 浅色竖版(1080×1620)+ 深色方版(1080×1080)两个生成脚本 |
| 小程序 | 「小善」儿童健康助手,前端免密钥直连大模型 |
| 部署与排错 | 三步部署清单 + 错误码对照表 + vConsole 诊断助手 |
首次使用请先填写
本技能为通用化蓝本,涉及你自身资源的部分已置为占位符,使用前请替换:
| 占位符 | 填什么 |
|---|---|
wbapp_YOUR_APP_ID |
你的 WorkBuddy Cloud 应用 ID |
wbpk_YOUR_PUBLISHABLE_KEY |
该应用的 publishableKey(可公开,无权限) |
YOUR_SITE_NODE_ID |
站点网页节点的云端 node-id |
YOUR_POSTER_NODE_ID |
海报云端正本的 node-id |
YOUR_SPACE_ID |
资料库个人空间 ID |
~/WorkBuddy/怎么吃才开心 |
你本地的实际工程路径 |
> publishableKey 不含任何权限,可安全放在前端与 CDN 页面里;不要为了「防泄露」把它挪进后端或自建 BFF,那会破坏免密钥鉴权链路,是反模式。
小膳陪你 · 全链路运维
用途
把「小膳陪你」这套资产当成一条可复现的流水线来维护:
品牌站点(自测 + 预约表单) → WorkBuddy Cloud 云端表 → 二维码海报物料 → 微信小程序「小善」AI 助手(前端免密钥直连大模型)
本技能固化每一步的确切参数、脚本与踩过的坑,避免每次从零试错。适用于日常改动、扩容、重新部署和线上排错。
采用任务导向 + 工作流的混合结构:先用场景路由定位任务,再按对应小节的步骤执行。
铁律(动手前必读)
- 先查清单,不猜参数。 所有云端 ID、端点、密钥、表名、node-id 一律以
references/system-inventory.md为准。注意这套系统里同一个 endpoint / publishableKey 在三处各存一份(站点 HTML、小程序config.js、云函数),改动前先确认要不要同步。 - publishableKey 可公开,但不等于没有边界。 它不含任何权限,可以直接放在前端和 CDN 页面里;绝不允许为了「防泄露」把它挪进后端或自建 BFF —— 那是反模式,会破坏应用的免密钥鉴权链路。
- 大模型只支持流式。 任何
chat.completions.create必须带stream: true;非流式请求在发出前就会被 SDK 以request_stream_required拒绝。全文靠逐块累加choices[0].delta.content拼出。 - system 消息必须是
messages[0]。 SDK 不会自动补,缺失会直接报错。每处调用点收工前都要过一眼这条。 - 改海报先看是不是动云端正本。 浅色竖版海报的云端正本是 drive node
YOUR_POSTER_NODE_ID:下载云端最新 → 本地改 → 同一 node-id 覆盖上传,不要上传同名新文件产生重复条目。深色方版目前仅本地,无云端正本。 - AppID 不得臆造。
project.config.json里的touristappid是占位,只能由主人提供真实 AppID(wx开头)后替换,禁止自行生成或猜填。 - 人设改一处要同步两处。 小善的系统提示词同时存在于
utils/prompt.js和cloudfunctions/chat/prompt.js,改人设必须两边同步,否则会出现「真机说话一套、备用云函数一套」。
场景路由
| 要做什么 | 走哪一节 / 读哪份参考 |
|---|---|
| 改站点文案、自测题、预约表单 | 第 1 节 + references/site-and-posters.md |
| 查看或导出预约数据、改表结构 | references/system-inventory.md(表 appointments) |
| 生成或改二维码海报 | 第 2 节 + scripts/make_qr_poster*.py |
| 改小善的人设、边界、免责节奏 | 第 3 节 + references/xiaoshan-persona.md |
| 小程序首次上线 / 报域名或 AppID 错 | 第 4 节 + references/miniprogram.md |
| 真机报错、连不上、没回复 | 第 5 节 + references/miniprogram.md |
第 1 节 · 品牌站点
站点是纯静态单页(index.html + CDN SDK),没有构建步骤,改完即见效。
- 本地工程:
童膳儿童饮食健康专家/,主文件index.html(另含avatar.png、wechat-qr.jpg与两个海报 Python 脚本)。 - 页面段落顺序:
top(Hero)→about→spec→method→services→selftest(专注力/身高自测)→voice→faq→contact(预约表单)。改文案时不要打乱id,它们同时是导航锚点。 - 预约表单字段与错误码处理见
references/site-and-posters.md。 - 云端同步约定:站点常规改动按「本地改 → 主人手动同步」处理;站点网页节点的云端正本是 page node
YOUR_SITE_NODE_ID,不要绕过主人擅自覆盖。
第 2 节 · 二维码海报
两个脚本,两套规格,用途不同:
| 脚本 | 规格 | 用途 |
|---|---|---|
scripts/make_qr_poster.py |
1080×1620 浅色竖版 | 朋友圈、群发、打印 |
scripts/make_qr_poster_dark.py |
1080×1080 深色方版 | 头像、封面、正方形位 |
python scripts/make_qr_poster.py --out "小膳陪你-站点二维码海报.png"
python scripts/make_qr_poster_dark.py --out "小膳陪你-站点二维码海报_深色1x1.png"
前置:pip install qrcode pillow。字体用 Windows 自带 C:\Windows\Fonts\msyhbd.ttc(粗)/ msyh.ttc(常规),不用另外下载。
配色常量集中在脚本头部,改色改那里,不要在画布代码里逐个改。
产出后若用于对外发布,按铁律 5 判断是否走云端正本覆盖。
第 3 节 · 小善 AI 助手
「小善」是「小膳陪你」旗下的儿童健康助手,跑在微信小程序里,前端免密钥直连 WorkBuddy Cloud 大模型,不再经过微信云函数。
- 人设、知识边界、交互规则、安全合规、五大功能模块、紧急拦截流程的完整原文见
references/xiaoshan-persona.md。 - 免责声明节奏:每次新对话第 1 轮,以及此后每满 5 轮(5、10、15…),在回复末尾附一句免责声明。这份节奏由
buildSystemPrompt(turn)注入 system 提示,不要指望模型自己记。 - 两处同源:改人设要同时改
utils/prompt.js与cloudfunctions/chat/prompt.js。 - 云函数
cloudfunctions/chat/是备用/参考实现(同一套 SDK 的后端形态),前端已不调用它。
第 4 节 · 小程序三步部署
首次上线或换 AppID 后,必须按序做完这三步,缺任何一步真机都不可用:
- 填真实 AppID ——
project.config.json的appid,wx开头,只能用主人给的。 - 加 request 域名白名单 —— 小程序后台「开发管理 → 服务器域名 → request 合法域名」加入
xiaoshan-peini.app.workbuddy.host(不带https://,端口 443)。 - 构建 npm —— 微信开发者工具「工具 → 构建 npm」,根目录须有
package.json(已含@tencent-ai/workbuddy-cloud-sdk),构建后生成miniprogram_npm/。
细节、文件地图与常见报错见 references/miniprogram.md。
第 5 节 · 排错快查
| 现象 | 原因 | 处理 |
|---|---|---|
报错含 auth_ |
鉴权失败或 request 域名不在白名单 | 查白名单是否加了 endpoint host;不要改 endpoint 绕过 |
request_stream_required |
漏了 stream: true |
所有 create() 调用必须带 stream: true |
| system 相关报错 | messages[0] 不是 system |
用 buildSystemPrompt(turn) 生成并置于首位 |
require 找不到 SDK |
没跑「构建 npm」 | 补跑第 4 节第 3 步 |
| 开发者工具能跑、真机不行 | urlCheck 开发期绕过但真机强制校验 |
开发期 false 只是权宜,正式前必须加白名单并改回 true |
| 完全没响应、看不到原因 | 需要 vConsole 诊断日志 | utils/workbuddy-cloud-diagnostics.js 会把失败请求打到手机 vConsole,搜 [WorkBuddy Cloud] request failed |
更多错误码(配额、网关、流中断等)见 references/miniprogram.md。
参考文件
references/system-inventory.md— 全链路资源清单:应用 / 端点 / 密钥 / 云端表名与字段 / 各 node-id / 本地路径references/xiaoshan-persona.md— 小善完整系统提示词与免责声明注入逻辑references/miniprogram.md— 小程序文件地图、直连代码结构、部署三步、报错对照表references/site-and-posters.md— 站点段落、SDK 接入、预约表单字段与错误码、海报脚本与云端正本流程
已知边界
- 云端表
appointments匿名可写、不可读取:前台只能插入,查看预约数据需要走有权限的通道,不要用匿名 key 尝试 SELECT。 - 本技能不做医疗建议本身,也不替主人决定内容文案;它管的是这条链路怎么跑通、改了怎么同步。
- 「构建 npm」必须在微信开发者工具里执行,命令行
npm install无法替代它生成miniprogram_npm/。 - 模型 ID 以运行时
cloud.llm.models.list()返回为准;目录可能为空(需显式处理),不要硬编码模型名做兜底。