2026-09-18 · 原文发布日
webhook收到选题后自动产出维基百科研究报告
向webhook POST一个topic,流程先让OpenAI生成五个聚焦的维基百科搜索词,逐条检索并抓取匹配条目的纯文本摘要,清洗合并成研究背景后由gpt-4o-mini综合成含摘要、发现、事实、益处、挑战、趋势、展望和参考来源的多章节报告,解析成结构化JSON写入Google Sheets、往Slack发完成通知,并把报告直接返回给调用方。
原文要点
WeblineIndia发布的免费n8n模板(workflows/19710):Webhook收到POST的topic后,用OpenAI生成五个维基百科搜索词,逐条检索并抓取匹配条目的纯文本extract,清洗合并成研究上下文,再由gpt-4o-mini生成含摘要、发现、事实、益处、挑战、趋势、展望、参考来源的多章节报告,解析成结构化JSON后写入Google Sheets(列:Topic、Date、Summary、Result)、向Slack频道发完成通知,并把报告返回给webhook调用方。作者提示:报告为空多为凭据或配额问题;多文章任务可能超过30秒导致webhook超时;可换用Google Custom Search等搜索引擎或升级模型。
这次做成什么
在n8n中复刻这条“POST一个选题→自动产出结构化维基研究报告”的链路,并用本站设计的独立练习(选题:城市社区屋顶花园)完成一次端到端测试。
准备什么
- n8n账号(云端或自托管),能创建并激活工作流
- OpenAI API Key,账号内可用gpt-4o-mini模型
- Google Sheets凭据和一个含Topic、Date、Summary、Result四列的表格
- Slack工作区凭据和一个可发帖的测试频道
- 能发POST请求的工具(curl或Postman)
具体怎么做
配置Webhook触发器
新建工作流,添加Webhook节点,Method选POST,Path填research-assistant。先点Listen for test event拿到测试URL,用curl发送{"topic":"城市社区屋顶花园"}确认节点收到body.topic字段。
生成搜索词并检索维基百科
添加OpenAI节点(Chat Model选gpt-4o-mini),提示词要求根据topic生成五个聚焦的英文维基百科搜索词,输出为纯JSON数组。后面接HTTP Request节点调用Wikipedia的搜索与extract接口,对每条搜索词取前几条匹配页面,循环抓取其纯文本摘要。
清洗合并与综合报告
用Code节点去掉extract里的多余空白和模板残留,按页面标题分段拼接成一份研究上下文。再接第二个OpenAI节点,要求基于上下文输出八章节报告,并以固定JSON结构返回(见下方材料提示词)。
解析、写表、通知、回包
用Code/Set节点把报告JSON解析成Topic、Date、Summary、Result四个字段;Google Sheets节点选Append或Update写入目标表格;Slack节点向测试频道发“选题+完成时间”通知;最后用Respond to Webhook节点把结构化报告直接返回调用方。
可直接复制的材料
搜索词生成提示词
本站独立编写,表达式按n8n的Webhook节点路径书写,字段名需与你的节点输出一致。
你是一名研究助理。用户会给出一个研究主题。请生成恰好5个适合在英文维基百科检索的聚焦搜索词,覆盖该主题的定义、技术方法、实际案例、争议或挑战、最新发展这五个角度。只输出一个JSON字符串数组,不要输出任何其他文字。主题:{{ $json.body.topic }}报告综合提示词
本站独立编写;researchContext为清洗合并后的上下文字段,名字需与前一步Code节点输出对应。
你是一名研究报告撰写人。下面是从维基百科抓取并清洗后的研究背景材料。请仅基于这些材料撰写一份中文研究报告,并严格输出如下JSON(不要加markdown代码块):{"summary":"150字内摘要","findings":["发现1","发现2","发现3"],"facts":["关键事实1","关键事实2"],"benefits":["益处1","益处2"],"challenges":["挑战1","挑战2"],"trends":["趋势1"],"outlook":"100字内展望","references":["用到的维基页面标题"]}
研究背景:
{{ $json.researchContext }}测试请求与Sheets字段映射
本站独立练习用测试数据;URL路径和列名需按你的实际配置替换。
curl -X POST https://你的n8n域名/webhook-test/research-assistant -H "Content-Type: application/json" -d '{"topic":"城市社区屋顶花园"}'
Google Sheets列映射:Topic ← webhook的topic;Date ← 执行日期($now);Summary ← 报告JSON的summary;Result ← 报告完整JSON字符串输入与输出示例
本站虚构演示输出,非实际运行结果;章节数与字段对应提示词约定。
输入
POST /webhook-test/research-assistant,body为{"topic":"城市社区屋顶花园"}对应输出
{"summary":"城市社区屋顶花园是在住宅或公共建筑屋顶建设的共享绿化空间,兼具降温、蓄水和社区交往功能。","findings":["可显著降低顶层室温","有助于雨洪管理","运营维护依赖社区参与"],"facts":["德国部分城市对新建平屋顶有绿化要求"],"benefits":["缓解热岛效应","提升生物多样性"],"challenges":["防水与荷载改造成本高","长期维护责任不清"],"trends":["与太阳能板结合的生态屋顶方案增多"],"outlook":"随着城市更新推进,屋顶绿化有望纳入更多地方建设标准。","references":["Green roof","Urban agriculture"]}做完检查这些
- curl测试请求能在放宽后的超时设置内收到完整JSON回包,且包含summary到references全部键
- Google Sheets新增一行,Topic列为提交的选题、Summary列与回包summary一致
- Slack测试频道收到一条含选题名的完成通知
- 五个搜索词确实各自触发了维基检索,研究上下文非空
容易卡住的地方
- 原作者提示报告为空时先查OpenAI凭据有效性和配额是否耗尽
- 多篇文章抓取可能超过30秒,原作者建议调大n8n执行超时或改异步;webhook同步等待方也要放宽超时
- Sheets报字段映射错误时核对列名是否严格等于Topic、Date、Summary、Result
- 维基接口对请求频率有约束,循环抓取时避免并发过高;搜索词若是中文容易零结果,提示词里要求英文搜索词
- 模型API按用量计费,免费额度之外会产生OpenAI费用,本条不为费用做保证
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Generate structured research reports with OpenAI, Wikipedia, Google Sheets, and Slack
- 原作者
- WeblineIndia
- 原始发布日期
- 2026-09-18T12:20:55.838Z
- 来源
- https://n8n.io/workflows/19710