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

2026-10-01 · 原文发布日

把演唱会定价变成互动经济学课的n8n后端

一个免费n8n模板,为配套教学网站提供后端:学生调节票价等参数后,webhook接收请求,用确定性公式算出上座率、营收、成本、利润和ROI,再用TypeSafe AI判断学生提问意图、由OpenAI从预写段落库挑1到3段组成讲解,避免AI自由发挥出错。第二个webhook按城市和日期返回模拟或联网搜索的同档期竞争活动,搜索结果会做地理和日期校验。模板附演示站、源码和完整搭建文档。

原文要点

Alicia Graham发布的免费n8n模板(20266号),为经济学教学网站提供后端。两个webhook:economics-concert-v1接收票价等参数,用确定性公式算上座率、营收、成本、利润、ROI;TypeSafe AI分类学生提问意图,OpenAI Responses API只从预写段落库挑1至3段拼讲解,响应无效时回退到预制讲解。第二个webhook concert-events-v1按城市和日期返回模拟或联网搜索的同档期活动,搜索结果做地理、日期、去重校验,最多返回8条。鉴权用Header Auth(X-Lesson-Key),模板附演示站、GitHub源码和搭建文档。

这次做成什么

在自己n8n实例上部署这套双webhook后端:一个端点接收定价参数返回计算指标与讲解,另一个端点返回同档期竞争活动列表;并用一条测试请求验证鉴权与返回结构。

准备什么

  • 可安装社区节点的n8n实例及发布webhook权限
  • OpenAI API密钥与TypeSafe AI账号及@typesafe-ai/n8n-nodes-typesafe-ai社区节点
  • 用于Header Auth的自定密钥字符串及能发POST请求的测试工具
  • 如部署配套网站还需Node.js HTTPS托管环境

具体怎么做

  1. 创建凭据

    在n8n的Credentials中新建Header Auth,header名固定为X-Lesson-Key、值为自定密钥;再新建OpenAI API凭据;安装@typesafe-ai/n8n-nodes-typesafe-ai社区节点后添加TypeSafe AI凭据。三种凭据分别挂到两个webhook节点、两个OpenAI HTTP Request节点和意图分类节点上。

  2. 导入并检查路径

    从模板页导入工作流后,确认两个webhook的生产路径分别是economics-concert-v1和concert-events-v1;若实例中路径已占用,改成本实例唯一的新路径,并同步修改所有外部调用方地址。

  3. 发布并取URL

    点击Publish发布工作流,从webhook节点复制两条生产URL(不是测试URL),把URL和X-Lesson-Key密钥一起配置进调用方(自建网站或测试脚本)。

  4. 发送测试请求

    用下方测试JSON向economics-concert-v1发POST,Header带X-Lesson-Key。期望返回含attendance、revenue、costs、profit、ROI及explanation段落的JSON;参数缺失时应返回400并说明如何修正。

  5. 测试活动研究端点

    向concert-events-v1发含city、date的请求,先用模拟模式应返回明确标注为虚构的活动列表;切到联网搜索模式后,确认返回条目经过地理与日期校验、最多8条。

可直接复制的材料

Lesson request测试请求体(本站虚构)

本站设计的练习输入,字段名需以模板实际校验逻辑为准,在原模板节点中核对后调整;数值为虚构教学数据。

{
  "scenario": {
    "ticketPrice": 68,
    "venueCapacity": 12000,
    "baseDemand": 15000,
    "priceElasticity": 1.4,
    "fixedCosts": 420000,
    "variableCostPerAttendee": 12
  },
  "question": "为什么票价定太高反而利润下降?"
}

Event research测试请求体(本站虚构)

mode为simulation时返回标注虚构的列表,不消耗搜索;改为联网模式前确认OpenAI凭据可用,字段名以原模板校验为准。

{
  "city": "Chengdu",
  "date": "2027-05-16",
  "timeWindow": "evening",
  "mode": "simulation"
}

调用方请求示例(本站独立示例)

URL路径与字段以你发布后的实际webhook为准;密钥不要写进前端公开代码,应放在服务端环境变量。

curl -X POST "https://你的n8n域名/webhook/economics-concert-v1" \
  -H "Content-Type: application/json" \
  -H "X-Lesson-Key: 换成你自定的密钥" \
  -d '{"scenario":{"ticketPrice":68,"venueCapacity":12000},"question":"票价和利润是什么关系?"}'

输入与输出示例

本站虚构演示输出,展示返回结构形状;字段名与数值需在部署后以真实响应为准,非模板实测结果。

输入

向economics-concert-v1发送ticketPrice=68、venueCapacity=12000,提问“为什么涨价后利润反而降了”。

对应输出

{"metrics":{"attendance":9800,"revenue":666400,"costs":537600,"profit":128800,"roi":0.2396},"explanation":{"paragraphIds":["p3","p7"],"focus":"demand-curve"},"meta":{"intent":"price-profit-relation","fallback":false}}

做完检查这些

  • 无X-Lesson-Key或密钥错误时两个端点都拒绝请求,带正确密钥才返回数据
  • lesson端点对合法输入返回含上座率、营收、成本、利润、ROI的JSON,缺少必填参数时返回400及修正说明
  • 学生提问超出意图库或OpenAI响应无效时,返回预制回退讲解而不是报错或自由发挥内容
  • events端点在模拟模式下返回的列表明确标注为虚构,联网模式下条目通过城市和日期校验且不超过8条

容易卡住的地方

  • 复制的是测试URL而非生产URL会导致工作流停用后请求失败,必须发布后取生产URL
  • 路径被占用未修改时webhook注册冲突,两个端点都要检查
  • OpenAI与TypeSafe AI为外部付费服务,费用随调用量产生,模板免费不代表运行免费
  • 联网搜索到的活动信息模板自身也提示需独立核实,不能直接当事实展示给学生
  • 密钥若写进公开网页源码会被盗用,应经由自己的服务端中转

原文与作者资料 ↗

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

原文标题
Deliver concert economics lessons with TypeSafe AI and OpenAI
原作者
Alicia Graham
原始发布日期
2026-10-01T05:09:16.825Z
来源
https://n8n.io/workflows/20266