作品阶段:可演示原型 | 技术栈:Python + 腾讯元宝搜索 SearchPro API
起因
最近帮朋友审一份 AI 生成的行业报告,里面有句"截至2025年底我国AI核心产业规模已突破9000亿元"。我顺手去搜了下——数字确实接近,但原文说的口径和报告里写的不一样。
这让我意识到一个事:AI 写的东西单看每一句都像真的,但没人有精力逐句去查。搜索引擎查一条信息大概一分钟,一份报告二十条数据,光核实就得半小时。
所以我花了一个下午做了这个小工具:把一段文本自动拆成一条条"断言",每条断言单独去元宝搜索查证据,最后按置信度打分输出报告。
先看效果——
跑起来长这样
我拿一段包含4个数据的AI生成文本测试:
2026年10月18日,中国信息通信研究院发布最新报告称,截至2025年底我国人工智能 核心产业规模已突破9000亿元人民币,相关企业数量超过4500家。报告显示,大模型 相关专利申请量累计超过35万件,位居全球第一。同期,全国已建成人工智能计算中 心超过30座,总算力规模位居全球第二。近年来,随着ChatGPT等大语言模型的爆发, 全球AI投融资总额在2024年达到约650亿美元,中国占比约20%。工具自动做了这几件事:
- 拆出 4 条可核查的断言
- 对每条断言生成 1-3 个不同角度的搜索词
- 调用元宝搜索 SearchPro 拿回搜索结果
- 去重、按权威度排序、计算置信度
- 输出 Markdown 核查报告
总耗时 3.7 秒,8 次 API 调用,找到 28 条来源。
核查结果:
| 断言 | 评级 | 置信度 |
| AI核心产业规模9000亿+4500家企业 | 🟡 中等支持 | 59.2% |
| 大模型专利35万件全球第一 | 🟠 存疑 | 53.9% |
| 算力中心30座+全球第二 | 🟠 存疑 | 53.9% |
| 全球AI投融资650亿美元+中国20% | 🟡 中等支持 | 59.0% |
比较有意思的是断言 #3"算力规模全球第二"——元宝搜到了央视国际的《我国算力总规模居全球第二》和中国网信网的同主题报道,权威信源直接把这条断言给支撑住了。断言 #2 搜到了上海知识产权局英文站的"China leads AI patents",方向对,但"35万件"这个具体数字没有直接来源,所以工具标了"存疑"而不是"支持"。
这个区分是我特意做的。"找到了相关结果"和"精确验证了断言"是两码事——如果工具搜到几篇沾边的文章就标绿,那和某些"AI搜索"没有本质区别。
怎么实现的
元宝搜索接入
元宝搜索支持 API KEY 方式,不用搞复杂签名,一个 Bearer Token 就够了:
import urllib.request, json, os def wsa_search(query, cnt=20): body = json.dumps({"Query": query, "Cnt": cnt}, ensure_ascii=False).encode("utf-8") headers = { "Content-Type": "application/json; charset=utf-8", "Authorization": f"Bearer {os.environ['TENCENTCLOUD_WSA_APIKEY']}", } req = urllib.request.Request( "https://api.wsa.cloud.tencent.com/SearchPro", data=body, headers=headers, method="POST") with urllib.request.urlopen(req, timeout=30) as resp: raw = json.loads(resp.read().decode("utf-8")) pages = [] for p in raw["Response"]["Pages"]: pages.append(json.loads(p) if isinstance(p, str) else p) return pages返回的每条结果带 title / url / date / passage / site,够用了。
断言拆解
用正则按中文标点分句,然后筛出满足这些条件的句子:
- 包含数字、日期或百分比
- 包含专有名词(公司/机构/产品)
- 包含事实性动词(发布/宣布/获得/推出/成立...)
同时把"我认为/感觉/希望"这类主观表述过滤掉——这些没法核查。
多角度搜索
单条搜索容易漏。我对每条断言生成2-4个查询:原句直接查,加上提取数字做精确匹配。比如"截至2025年底核心产业规模9000亿"会同时搜原句和"核心产业规模 9000亿"。
置信度打分
confidence = 0.4 × 相关性 + 0.3 × 支持来源数(log缩放) + 0.3 × 权威度权威度这块我做了一个 site 信誉表,央视/新华社/政府网站权重高,普通自媒体权重低。这里有一个坑后面说。
输出
每次核查生成两个文件:
factcheck_xxx.json— 完整数据,含每次搜索的原始结果和 RequestIdfactcheck_report_xxx.md— 人类可读的报告,每条断言下面带来源表格
一个真实的坑
我拿到的是极速版(lite)的 API 权限。文档上写着会返回 score 和 authority_level 字段,实际跑了一下——这两个字段都没有,Cnt 参数传了还报错illegal Cnt。
第一版代码写了score > 0.3的过滤,结果所有结果都被筛成 0 条,报告上全部显示"无相关来源"。
解决办法:score 字段不存在时不做过滤,改用自己维护的 site 信誉表做权威度排序。这个改动花了我二十分钟,但如果我光看文档不跑代码,肯定以为一切正常。
教训:文档说有的字段,不一定真有。跑一遍比读十遍文档有用。
耗时和成本
- 单次核查:3-5 秒(4条断言 × 2-3个查询角度)
- API 费用:极速版参加活动送了 6000 次/月免费额度,日常用完全够
- 开发耗时:一个下午
对比人工:人工查4条数据大概5分钟(每条打开搜索引擎、翻结果、判断来源),工具3秒出结果+1分钟看报告。效率差距大概在4-5倍。
局限性(说实话)
1.没有做真正的语义匹配。工具不知道返回的 passage 是不是真的支持断言原文,只是靠搜索相关度和来源权威度"猜"的。要精确判断得接个 NLI 模型或 LLM 做二次推理。
2.中文分句正则比较粗糙。引号里带句号的情况处理不好,要做得更好得上 jieba 或直接用 LLM 拆。
3.对冷门断言没什么办法。搜索覆盖不到的就标"无法核验",这是诚实的表现,但用户可能觉得没用。
这些是接下来想改的方向,不过先发出来听听反馈。
为什么选元宝搜索
本来我也考虑过其他搜索 API,最后选元宝搜索有三个实际原因:
1.返回结构干净。每条结果自带 title/url/date/site/passage,直接能用,不用额外清洗
2.响应快。实测 230-400ms 一次调用,交叉验证多次调用也不觉得卡
3.中文内容覆盖好。测试的几条断言都能搜到腾讯新闻、人民网、央视这些权威源
最打动我的是产品那句话——"让AI查得到,更信得过"。搜索引擎本身就应该是事实核查的基础设施,元宝搜索把这个能力开放成了 API,我觉得方向是对的。
代码
纯 Python 标准库,零第三方依赖,一个文件搞定:
# 完整代码约 480 行,核心模块: # - wsa_search() 元宝搜索封装 # - extract_claims() 断言拆解 # - generate_queries() 多角度查询生成 # - check_claim() 交叉核验 # - evaluate_confidence() 置信度评估 # - generate_report() Markdown 报告输出完整源码和演示数据我放在了 GitHub 仓库,仓库地址会在评论区置顶。
完整源码和演示数据我放在了 GitHub 仓库,仓库地址会在评论区置顶。