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托管环境
具体怎么做
创建凭据
在n8n的Credentials中新建Header Auth,header名固定为X-Lesson-Key、值为自定密钥;再新建OpenAI API凭据;安装@typesafe-ai/n8n-nodes-typesafe-ai社区节点后添加TypeSafe AI凭据。三种凭据分别挂到两个webhook节点、两个OpenAI HTTP Request节点和意图分类节点上。
导入并检查路径
从模板页导入工作流后,确认两个webhook的生产路径分别是economics-concert-v1和concert-events-v1;若实例中路径已占用,改成本实例唯一的新路径,并同步修改所有外部调用方地址。
发布并取URL
点击Publish发布工作流,从webhook节点复制两条生产URL(不是测试URL),把URL和X-Lesson-Key密钥一起配置进调用方(自建网站或测试脚本)。
发送测试请求
用下方测试JSON向economics-concert-v1发POST,Header带X-Lesson-Key。期望返回含attendance、revenue、costs、profit、ROI及explanation段落的JSON;参数缺失时应返回400并说明如何修正。
测试活动研究端点
向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