AI PLAY玩法更新持续收录
← 回到更新流

2026-10-06 · 原文发布日

幼儿园每日照片通讯的生成与审批看板

n8n模板:用一个网页看板服务幼儿园老师,孩子名册和当日通讯记录存在n8n Data Tables里。老师给某个孩子传一至三张照片加简短备注,看板调GPT-4o-mini经OpenRouter生成一段100字以内的当日通讯草稿;不满意可基于原照片和备注重写,改好后点批准,状态和最终文本带时间戳存回表。手机电脑浏览器都能打开这个看板,适合园内日常记录场景。

原文要点

这个n8n模板为幼儿园老师提供一个网页看板:GET /newsletter-app加载n8n Data Tables里的在园儿童(is_active)和当日通讯记录,渲染成手机/电脑可用的HTML页面。老师上传1-3张照片加简短备注后,POST到/newsletter-app/generate,经OpenRouter调GPT-4o-mini生成100字以内通讯草稿,以状态‘下書き’存入newsletters表。重写走/newsletter-app/regenerate(重新读取已存备注和照片再生成),批准走/newsletter-app/approve,状态变‘承認済み’并写入最终文本和批准时间戳。

这次做成什么

搭一个最小可用的园内通讯练习版:两张Data Table、三个webhook端点、一段生成提示词。本站练习用合成儿童名册和虚构照片说明,先跑通‘草稿→重写→批准’状态机,再考虑接真实照片上传。界面HTML细节需在原模板核对,本站不声称复刻原页面。

准备什么

  • 一个n8n实例,且老师设备能访问到它的webhook地址
  • OpenRouter账号和API key(调用GPT-4o-mini会产生费用)
  • n8n Data Tables功能可用(较新版本n8n内置)
  • 练习用虚构儿童名册,不要用真实儿童真实姓名

具体怎么做

  1. 建两张Data Table

    在n8n的Data Tables里建children表:字段至少含child_id、name、is_active。建newsletters表:字段含newsletter_id、child_id、date、status、ai_text、final_text、staff_memo、photo_count,以及模板用到的照片存储字段。children表填入下面材料的虚构名册,is_active设为true。

  2. 配置OpenRouter凭据

    在n8n凭据里新建Header Auth(或OpenRouter专用凭据):Authorization: Bearer 你的OpenRouter key。在工作流里两处HTTP Request节点(generate和regenerate,地址https://openrouter.ai/api/v1/chat/completions)都选这个凭据,body模型名填openai/gpt-4o-mini。

  3. 实现生成端点

    Webhook节点设为POST,路径/newsletter-app/generate,接收child_id、staff_memo和照片。校验child_id存在且照片1-3张后,把备注和照片(base64或URL)放进chat completions请求,system提示词用下面材料,要求输出不超过100字的家长通讯草稿。返回文本后写入newsletters表:status=下書き、ai_text=草稿、date=当天,已存在当天记录则更新而非新建。

  4. 实现重写与批准端点

    regenerate端点:按child_id+date从newsletters读回已存的staff_memo和照片,再次调OpenRouter生成新草稿,更新ai_text返回。approve端点:接收老师编辑后的final_text,更新status=承認済み并写入批准时间戳(用{{ $now }}表达式)。最后加GET /newsletter-app端点,读children和今日newsletters做左连接,渲染简单HTML列表:每个孩子显示状态和草稿文本框、重写按钮、批准按钮。

可直接复制的材料

children表虚构名册(CSV)

本站虚构名册,小雪设为false用于验证看板只显示在园儿童;练习请不要用真实儿童姓名。

child_id,name,is_active
c001,小葵,true
c002,大地,true
c003,小雪,false

通讯草稿生成system提示词(可粘贴)

本站独立编写;100字上限来自原模板设定。备注原文为日文场景时可把语言要求改为日语。

你是幼儿园老师,正在给家长写当日通讯。根据老师备注和孩子照片内容,写一段不超过100字(含标点)的中文通讯,语气温暖具体,描述孩子今天的活动和状态,不要编造备注中没提到的健康或进食细节,不要出现其他孩子的名字。只输出通讯正文,不要标题和署名。

newsletters表合成当日记录(JSON)

本站虚构示例,展示下書き与承認済み两种状态的字段差异;批准时final_text可与ai_text不同(老师改过)。

[{"newsletter_id":"n20261006-c001","child_id":"c001","date":"2026-10-06","status":"下書き","ai_text":"今天小葵在沙坑里专注地堆了一座小山,还主动把铲子借给旁边的小朋友。","final_text":"","staff_memo":"上午玩沙子很投入,愿意分享玩具","photo_count":2},{"newsletter_id":"n20261006-c002","child_id":"c002","date":"2026-10-06","status":"承認済み","ai_text":"大地今天第一次自己系好了围裙,画画时选了蓝色和黄色。","final_text":"大地今天第一次自己系好了围裙,画画时选了蓝色和黄色,很有成就感。","staff_memo":"生活自理有进步","photo_count":1}]

输入与输出示例

本站虚构演示,非真实调用结果;实际输出取决于模型和照片内容。

输入

老师对c001小葵上传2张照片,备注‘上午玩沙子很投入,愿意分享玩具’,POST到/newsletter-app/generate。

对应输出

GPT-4o-mini草稿(示意):‘今天小葵在沙坑里专注地堆了一座小山,还主动把铲子借给旁边的小朋友。’(33字,≤100字)。newsletters表新增一行status=下書き。老师点批准后status变承認済み,final_text写入,approve时间戳为2026-10-06T15:20:00+09:00。

做完检查这些

  • children表中is_active=false的小雪不出现在看板列表里
  • 同一孩子同一天重复点生成,newsletters表只更新已有行而不是出现两行
  • 批准操作后status精确变为承認済み且有时间戳字段被写入
  • 草稿字数超过100字时(提示词失效场景)有提示词约束兜底,抽查三条草稿均≤100字

容易卡住的地方

  • n8n实例必须能从老师的手机网络访问,自托管在内网却不做外网映射时看板打不开
  • 照片以base64进Data Table会让表迅速膨胀,长期使用要定期清理或改存外部URL
  • OpenRouter按token计费,照片走多模态输入比纯文本贵,先用1张照片测试成本
  • 状态字段值‘下書き’‘承認済み’是日文原字,自建时若改成中文要确保所有节点判断条件同步修改

原文与作者资料 ↗

本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。

原文标题
Create daycare photo newsletters with an approval dashboard and GPT-4o-mini
原作者
Jun Kamiya
原始发布日期
2026-10-06T15:28:59.600Z
来源
https://n8n.io/workflows/20545