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

2026-09-17 · 原文发布日

聊天式核查新闻说法:多源印证还是孤证

免费n8n模板做事实核查助手:在n8n聊天里提问后,先判断是快查还是深度研究以决定Webz.io新闻搜索次数,再由GPT-4.1-mini配合Webz.io工具收集近期报道,把结果归纳成若干可核查的具体说法并附来源URL;按注册域名去重统计每个说法有多少家独立媒体报道,按阈值标注“多源印证”或“单一来源”,生成带来源链接和来源分布脚注的简报,并把每条说法存一行到Google Sheets。找不到可用报道时给出新的搜索角度而不是硬编答案。

原文要点

该聊天驱动模板从n8n聊天触发器收问题,先区分快查或深度研究以控制Webz.io搜索次数;GPT-4.1-mini配合Webz.io新闻搜索收集近期文章,归纳成可核查说法并附来源URL。按可注册域名去重,统计每个说法有多少独立媒体,按阈值标记corroborated或single-source;有说法时生成带链接媒体与来源分布脚注的简报,并每条说法写一行到Google Sheets,列含saved_at、question、claim、status、source_count、publishers、urls;无可用报道时回复新的搜索角度而非无来源答案。

这次做成什么

做一个聊天式新闻核查练习:输入一句热点说法,得到「多源印证/单一来源」标签、来源分布脚注和一行Sheets归档。本站设计合成检索结果与提示词,便于先离线验证判定逻辑;真实运行需自行接入OpenAI、Webz.io与Google Sheets。

准备什么

  • n8n可用聊天触发器,能在画布中接收测试问题并查看最终回复
  • OpenAI凭据,可访问GPT-4.1-mini聊天模型;仅做逻辑练习可先用合成数据
  • Webz.io API token,建Bearer Auth凭据并挂到新闻搜索工具
  • Google Sheets凭据与目标表,表头固定为saved_at,question,claim,status,source_count,publishers,urls

具体怎么做

  1. 聊天入口与问题分级

    从Chat Trigger开始,接Code节点读取chatInput,输出question、language、now。再接一个分级节点:包含「为什么、影响、深度、比较」或时间范围词时mode=deep,否则mode=quick。把mode写入Research settings:quick允许较少Webz.io搜索,deep允许更多;具体次数用本页配置示例中的quickSearches/deepSearches,不在无依据时承诺固定性能。

  2. 检索并归纳可核查说法

    OpenAI聊天节点挂Webz.io news search工具,系统提示词用本页核查提示词。用户问题先改写成含language与lookbackDays的检索指令;返回结果只保留title、url、publisher、publishedAt、snippet。要求模型把报道聚类成claims,每条claim必须列supportingUrls,禁止无URL结论;检索为空时直接输出nextAngles,不进入归档。

  3. 域名去重与印证判定

    Code节点对每个claim的supportingUrls取hostname,再按可注册域归一,例如把m.example.co.uk与www.example.co.uk都算作example.co.uk;练习中用本页normalizeDomain规则,真实环境可换你认可的公共后缀方案。统计independentDomains数量,source_count>=threshold标corroborated,否则single-source;publishers存域名分号串,urls存原始URL分号串。

  4. 生成简报并归档一行

    有claims时,用Code节点生成中文回复:每个claim一段,显示status、source_count、可点击媒体名和脚注「来源分布:A媒体2篇、B媒体1篇」。随后Google Sheets节点选择Append Row,映射saved_at=执行时间ISO、question=原问题、claim=说法、status=标签、source_count=独立域名数、publishers=域名串、urls=URL串。无claims时回复建议角度,且不写Sheets。

可直接复制的材料

Research settings练习配置

本站独立配置;搜索次数只是流程控制参考值,不声称等同于原模板内部参数或效果。

{
  "language": "zh-CN",
  "lookbackDays": 7,
  "corroborationThreshold": 2,
  "maxFindings": 5,
  "quickSearches": 1,
  "deepSearches": 3,
  "sheetColumns": ["saved_at", "question", "claim", "status", "source_count", "publishers", "urls"]
}

GPT-4.1-mini核查提示词

完整可复制;需替换maxFindings为你的settings值,工具名称以实际Webz.io配置为准。

你是中文事实核查助理。你可以调用新闻搜索工具,但最终只能输出JSON,不要Markdown。输入含question、language、lookbackDays、mode。任务:1)按mode决定检索广度,只检索近lookbackDays天报道;2)把报道归纳成最多maxFindings条彼此不同的可核查claim;3)每条claim必须给supportingUrls数组,元素含title、url、publisher、publishedAt;4)若没有任何可用报道,返回{"claims":[],"next_angles":["换主体:...","换时间:...","换地区:..."]},不得编造。输出结构:{"claims":[{"claim":"具体、可被证据支持或反驳","supportingUrls":[{"title":"...","url":"https://...","publisher":"...","publishedAt":"ISO"}]}],"next_angles":[]}。不要加入URL中没有的事实。

合成检索结果与归一规则

合成数据,仅用于演练域名去重;不代表Webz.io真实返回格式。

{
  "articles": [
    {"title": "CityGrid says sensors cut bus delays", "url": "https://m.metro-news.example/city/101", "publisher": "Metro News", "publishedAt": "2026-09-16T08:00:00Z", "snippet": "A pilot dashboard shows average delay fell from 11 to 8 minutes."},
    {"title": "Transit office confirms pilot metrics", "url": "https://www.citybeat.example/policy/77", "publisher": "CityBeat", "publishedAt": "2026-09-16T10:00:00Z", "snippet": "Officials published the same pilot table for two routes."},
    {"title": "Sensors story republished", "url": "https://blog.metro-news.example/repost/101", "publisher": "Metro News Blog", "publishedAt": "2026-09-16T12:00:00Z", "snippet": "Repost of the earlier Metro News item."}
  ],
  "normalizeDomain": "练习规则:取hostname后去掉开头www.、m.、blog.等常见子域前缀,再按最后两段拼回主域;因此m.metro-news.example与blog.metro-news.example都归为metro-news.example,www.citybeat.example归为citybeat.example。练习环境不内置公共后缀列表,真实运行需自行选择可靠归一方案。"
}

Google Sheets表头

示例表头与一行合成归档值;域名与链接虚构,导入真实表格前清空示例行。

saved_at,question,claim,status,source_count,publishers,urls
2026-09-17T02:00:00Z,"某市公交传感器让准点率提升了吗","试点仪表盘显示两条线路平均延误从11分钟降到8分钟","corroborated",2,"metro-news.example;citybeat.example","https://m.metro-news.example/city/101;https://www.citybeat.example/policy/77"

输入与输出示例

本站虚构演示,非作者结果;未调用OpenAI、Webz.io或Google Sheets。

输入

聊天输入:「某市公交传感器试点后,两条线路平均延误真的从11分钟降到8分钟吗?请做快查。」settings为lookbackDays=7、threshold=2、mode=quick。

对应输出

回复关键行:claim=试点仪表盘显示两条线路平均延误从11分钟降到8分钟;status=corroborated;source_count=2;publishers=metro-news.example;citybeat.example;脚注=来源分布:Metro News系2篇计1家,CityBeat1篇计1家;Sheets追加一行且urls含两条不同域名链接。

做完检查这些

  • quick与deep会写入不同搜索预算,且检索指令携带language与lookbackDays
  • 同一可注册域的www、m、blog子域只计1家,转载不提高source_count
  • 每条归档claim都至少有一个supportingUrls,status由threshold决定而不是模型口头判断
  • 无可用报道时回复next_angles,且Google Sheets不新增无来源行

容易卡住的地方

  • 可注册域归一若只做字符串去www,会把不同国家后缀或子域策略算错,需明确练习规则
  • 多家媒体转载同一通讯社稿可能被域名法高估为独立印证,脚注要保留分布供人看
  • 聊天模型可能输出近似JSON,进入Sheets前必须解析校验,失败就回到修订分支
  • Webz.io、OpenAI、Google Sheets任一凭据失效都应表现为明确错误,而不是生成无来源答案

原文与作者资料 ↗

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

原文标题
Cross-check news claims by chat with Webz.io, GPT-4.1-mini, and Google Sheets
原作者
Webz.io
原始发布日期
2026-09-17T15:20:22.142Z
来源
https://n8n.io/workflows/19688