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

2026-09-06 · 原文发布日

博物馆微气候异常自动分级与派单

付费模板。每半小时拉一次各展厅温湿度传感器数据,与Postgres里的上次读数比对,只保留超过阈值的变化;OpenAI对这些异常做结构化文保风险评估并给出建议响应窗口,再算出严重度分流:一般异常建Jira任务,紧急的发Slack提醒,证据JSON归档到Google Drive,最后把新快照写回数据库供下次比对和审计。阈值、提示词、通知渠道都可改。

原文要点

这是Swapnil Mandloi发布的付费n8n模板:定时器每30分钟扫描一次,从传感器厂商HTTP API取各展厅温湿度,与Postgres中上次读数比对,只保留超过RH或温度变化阈值的读数;超阈值的读数经OpenAI结构化抽取得到文保风险评估与建议响应窗口,再与实测差值合成严重度并分为watch/urgent/critical三路,分别建Jira工单、发Slack告警、把证据JSON归档到Google Drive,最后把新快照写回Postgres。作者称配置耗时约35–50分钟,外部动作失败重试3次间隔2秒。

这次做成什么

在自有n8n实例中照此思路搭一条博物馆微气候异常分级派单练习流:定时拉取模拟传感器数据→与Postgres上次快照比对→仅对超阈值展厅调用AI风险评估→按严重度分流到Jira/Slack/Drive→写回快照。原模板需付费购买,本页是本站按其公开说明独立设计的等价练习方案,不是原工作流文件;OpenAI、Jira等第三方服务可能另行收费。

准备什么

  • 自托管或n8n Cloud实例,且可访问外网HTTP节点
  • 一个可用的PostgreSQL数据库及具备建表、读写权限的账号
  • OpenAI API Key(建议用便宜的mini级模型做练习)
  • Jira项目、Slack Bot、Google Drive账号,练习时可先换成邮箱或Webhook占位
  • 本页下方提供的合成展厅测试数据,不连接真实传感器

具体怎么做

  1. 建状态表与快照表

    在Postgres执行下方DDL:prior_state表按zone_id存上次温湿度,snapshots表存每次运行的captured_at与readings_json审计记录。先用INSERT写入3个展厅的基线读数(如A厅温度20.0、湿度50.0)。

  2. 定时触发并拉取传感器读数

    添加Schedule Trigger设为每30分钟;接HTTP Request节点指向传感器API(练习时改用Mock接口或Webhook.site返回下方合成JSON),Header带上厂商凭据;再用Postgres节点SELECT prior_state全表,把两路数据用Merge按zone_id对齐。

  3. 计算差值并过滤超阈值读数

    在Code节点对每个zone计算Δtemp与ΔRH绝对值,只保留ΔRH≥4个百分点或Δtemp≥1.5℃的展厅(阈值按自己政策改),输出changed数组;无异常时走空分支直接写快照,不调用AI以省钱。

  4. AI结构化风险评估

    用OpenAI节点配Structured Output,粘贴下方评估提示词,把changed数组中每条读数连同差值一起送入,要求返回risk_level、evidence、response_window_hours三个字段;随后Code节点把AI结果与差值合成severity=基础分+差值加权,映射为watch/urgent/critical。

  5. 按严重度三路分流

    Switch节点按route分流:watch建Jira工单(填项目Key、摘要含zone_id与差值),urgent额外发Slack告警到指定频道,critical两者都做并把该条证据JSON上传到Google Drive指定文件夹;三路用Merge汇合。

  6. 写回快照并试跑

    最后用Postgres节点把本次全部读数INSERT进snapshots并UPSERT更新prior_state;手动Execute一次,确认只有超阈值的展厅产生工单/消息,基线数据第二次跑时应无异常。

可直接复制的材料

Postgres状态与快照表DDL

本站独立编写的练习表结构,字段名需与实际工作流查询对齐后使用

CREATE TABLE prior_state (
  zone_id TEXT PRIMARY KEY,
  temperature_c NUMERIC(5,2) NOT NULL,
  rh_pct NUMERIC(5,2) NOT NULL,
  updated_at TIMESTAMPTZ DEFAULT now()
);
CREATE TABLE snapshots (
  id BIGSERIAL PRIMARY KEY,
  captured_at TIMESTAMPTZ NOT NULL DEFAULT now(),
  readings_json JSONB NOT NULL
);
INSERT INTO prior_state (zone_id, temperature_c, rh_pct) VALUES
  ('hall-a', 20.0, 50.0),
  ('hall-b', 21.0, 55.0),
  ('hall-c', 19.5, 48.0);

文保风险评估提示词

本站独立编写的练习提示词,藏品敏感性规则应请本馆文保人员确认后调整

你是博物馆预防性保护助理。下面是某展厅相对于上次读数的微气候变化数据(JSON):
{"zone_id":"{{zone_id}}","temperature_c":{{temperature_c}},"rh_pct":{{rh_pct}},"delta_temp_c":{{delta_temp_c}},"delta_rh_pct":{{delta_rh_pct}}}
请只输出JSON,不要输出其他文字,字段如下:
risk_level:low/medium/high 之一,依据纸质、纺织品与木质藏品对湿度骤变的常见敏感性判断;
evidence:一句话说明判断依据,引用具体差值;
response_window_hours:建议多少小时内到场处理,high不超过4小时,medium不超过24小时,low不超过72小时。

合成传感器测试数据

配合上方基线,仅hall-b会超阈值(ΔRH=7.5、Δtemp=2.4),用于验证过滤逻辑

[
  {"zone_id":"hall-a","temperature_c":20.3,"rh_pct":50.8},
  {"zone_id":"hall-b","temperature_c":23.4,"rh_pct":62.5},
  {"zone_id":"hall-c","temperature_c":19.6,"rh_pct":48.2}
]

输入与输出示例

本站虚构演示输出,字段与上方提示词约定一致,非原作者运行结果

输入

hall-b本次读数temperature_c=23.4、rh_pct=62.5,基线为21.0/55.0,即Δtemp=2.4℃、ΔRH=7.5个百分点,超过阈值

对应输出

{"zone_id":"hall-b","risk_level":"high","evidence":"相对湿度半小时内上升7.5个百分点并伴随2.4℃升温,纸张与纺织品藏品存在吸湿变形风险","response_window_hours":4,"route":"urgent"}

做完检查这些

  • 第二次手动运行时无新差值,OpenAI节点不触发,Jira与Slack均无新增内容
  • hall-b测试数据触发后,Jira工单摘要中包含zone_id=hall-b与ΔRH=7.5
  • snapshots表每次运行新增一行且readings_json包含全部3个展厅读数
  • prior_state在运行后更新为本次读数,供下一轮比对

容易卡住的地方

  • 原模板需付费购买,本页为等价练习方案,节点名与按钮位置需以你实际导入或自建的流程为准
  • 传感器标签可能暴露藏品位置,Drive/Jira/数据库权限要按最小化原则配置
  • AI评估不替代文保人员判断,传感器校准与藏品敏感性数据需人工维护
  • 模型调用按变更条目数计费,阈值设太低会让每次扫描都调AI推高费用

原文与作者资料 ↗

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

原文标题
Triage museum microclimate excursions with OpenAI, Jira, Slack, and Google Drive
原作者
Swapnil Mandloi
原始发布日期
2026-09-06T05:03:27.217Z
来源
https://n8n.io/workflows/19274