2026-09-03 · 原文发布日
给 AI 回答做联网事实核验并分级告警
给 AI 回答做事实核验的模板:外部系统把问题和答案 POST 到 webhook,工作流先调搜索接口取回相关结果摘要,再让 GPT-4 Turbo 对照来源给出置信度、理由和 SAFE/SUSPICIOUS/HALLUCINATED 三级判定;安全结果直接返回调用方,可疑的发 Slack 提醒,判定幻觉的发 Gmail 严重告警,适合接在自有 AI 应用后面做质检。
原文要点
WeblineIndia 在 n8n 模板库发布的免费工作流:外部系统把问题与 AI 答案 POST 到 /hallucination-check webhook,工作流用问题调 Google/Serp 类搜索接口取回前列结果,整理成来源清单后交给 OpenAI GPT-4 Turbo,要求返回含置信度、理由和 SAFE/SUSPICIOUS/HALLUCINATED 三级分类的 JSON;SAFE 直接回给调用方,SUSPICIOUS 发 Slack 频道消息,HALLUCINATED 发 Gmail 严重告警。设置要点:替换搜索接口占位 URL 与 X-API-KEY,配置 OpenAI、Slack、Gmail 凭据,并把 Gmail 里的 your_email_here 换成真实收件人。
这次做成什么
在 n8n 里搭一条 webhook 质检线:任何自有 AI 应用回答完用户后,把问答对推过来,自动联网搜索、让模型对照来源判级,并按级别分流告警。
准备什么
- 一个可自托管或云端的 n8n 实例,能开启 webhook 并接受公网 POST
- OpenAI 账号且 GPT-4 Turbo 对该账号可用,并在 n8n 建好凭据
- 任一 Google/Serp 类搜索 API 的接入地址与 API Key(原文用占位符,需自购)
- 一个 Slack 工作区及目标告警频道,一个可发信的 Gmail 账号
具体怎么做
建 webhook 入口
新建工作流,加 Webhook 节点,方法 POST,路径填 /hallucination-check。先用测试 URL,从你自己的 AI 应用或 curl 发送 {"question":"...","answer":"..."},确认能收到两个字段。
调搜索接口取证
加 HTTP Request 节点,URL 先保留占位,替换为你搜索服务商的真实端点,Header 加 X-API-KEY 填你的 Key,查询参数用 {{$json.question}}。运行一次确认返回结果列表。
整理来源清单
加 Set 或 Code 节点,把返回的前 3–5 条结果压缩成 sources 数组,每条含 title 与 snippet 两个字段,拼成紧凑文本块,供下一步提示词引用。
让 GPT-4 Turbo 判级
加 OpenAI 节点选 GPT-4 Turbo,用下方提示词,把 question、answer、sources 注入,要求只输出 JSON(confidence、reasoning、classification)。收到后加一个 JSON 解析步骤取出 classification。
按级别分流
加 Switch 节点按 classification 分三路:SAFE 走 Respond to Webhook 把判定 JSON 原样回给调用方;SUSPICIOUS 走 Slack 节点向选定频道发含问答与理由的消息;HALLUCINATED 走 Gmail 节点,把收件人 your_email_here 换成你的告警邮箱,主题标注严重级别。
可直接复制的材料
判级提示词(本站独立撰写,可直接粘贴到 OpenAI 节点)
提示词为本站撰写;置信度是模型自评的参考值,不代表真实准确率,阈值分流规则可按需调整。
你是一名事实核验员。请根据下面给出的联网搜索来源,判断 AI 答案是否与来源一致,还是缺乏依据或与来源冲突。
【用户问题】
{{$json.question}}
【AI 答案】
{{$json.answer}}
【搜索来源】
{{$json.sources}}
判定标准:
- SAFE:答案的关键事实能被至少一条来源直接支持;
- SUSPICIOUS:来源不足、部分支持或表述模糊,无法确认也无法否定;
- HALLUCINATED:答案与来源明确冲突,或关键事实(人名、数字、日期、结论)在任何来源中都找不到依据。
只输出一个 JSON 对象,不要输出其他文字:
{"confidence": 0到100的整数, "reasoning": "不超过150字的中文理由,引用具体来源", "classification": "SAFE或SUSPICIOUS或HALLUCINATED"}测试 POST 数据(合成)
字段名必须与 webhook 入口一致;搜索接口端点与 Key 需替换为你自己的服务商,本文为方案示意,未实测。
{"question":"2024年巴黎奥运会中国队获得多少枚金牌?","answer":"中国队在2024年巴黎奥运会上获得了40枚金牌,与美国并列金牌榜第一。"}输入与输出示例
本站虚构演示,未实际运行工作流,模型真实输出每次可能不同。
输入
{"question":"2024年巴黎奥运会中国队获得多少枚金牌?","answer":"中国队在2024年巴黎奥运会上获得了40枚金牌,与美国并列金牌榜第一。"}对应输出
{"confidence":92,"reasoning":"多条搜索来源均显示中国队获40枚金牌,与美国并列金牌榜首,答案与来源一致。","classification":"SAFE"},该结果走 Respond to Webhook 分支直接回给调用方;若把答案改成“获得52枚金牌”,预期输出 classification 为 HALLUCINATED 并触发 Gmail 严重告警邮件。做完检查这些
- curl POST 到 /hallucination-check 后,能在 n8n 执行记录里看到 question 与 answer 两个字段完整到达
- HTTP Request 节点返回真实搜索结果,且整理后的 sources 里每条都含标题与摘要
- OpenAI 节点输出能被解析出 classification,且三种取值在 Switch 节点各有对应分支
- 构造一个明显错误的答案测试时,Slack 或 Gmail 分支确实收到对应级别的消息
容易卡住的地方
- 搜索接口 URL 与 X-API-KEY 是占位符,不替换会导致 HTTP 节点 401 或超时,整条流程卡死
- GPT-4 Turbo 是否可用取决于你的 OpenAI 账号,账号无权限时需在 n8n 里换可用模型
- 模型可能不严格输出纯 JSON,建议解析失败时默认按 SUSPICIOUS 处理并告警
- Gmail 节点的 your_email_here 必须替换,否则严重告警发到无效地址
- 免费模板本身不收模板费,但 OpenAI、搜索 API、Gmail/Slack 用量可能各自计费
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Validate AI answers with Google search, OpenAI GPT-4, Slack and Gmail alerts
- 原作者
- WeblineIndia
- 原始发布日期
- 2026-09-03T12:54:06.276Z
- 来源
- https://n8n.io/workflows/19129