【元宝搜索开发者征文大赛】用元宝搜索 API 搭了个 AI 资讯早报机器人:8 次调用,3 分钟吃完一天的 AI 信息早餐
【元宝搜索开发者征文大赛】用联网搜索 API 搭了个 AI 资讯早报机器人:8 次调用,3 分钟吃完一天的 AI 信息早餐
作品阶段:可演示原型
关键词:Python、腾讯云 WSA、SearchPro 接口、资讯聚合、实践记录
一、需求从哪里来
我每天早上醒来第一件事,就是刷 AI 资讯。
科技媒体看一圈,公众号翻一遍,再打开几个聚合站。半小时过去了,真正值得知道的事,其实就五到十条。
这个过程有三个烦人的地方:
- 刷得多,有用的少。大部分内容是重复报道和情绪文,信息密度很低。
- 到处都是转载。同一个新闻,A 站转 B 站,B 站转 C 站,经常点开才发现已经读过。
- 分不清新旧。AI 圈更新太快,上周的"最新发布"这周就过时了,但很多页面根本不标发布时间。
所以我想要的东西很简单:一份筛好了的、标了来源和时间的、3 分钟能读完的信息早餐。这个工具首先是给我自己用的,但相信每个关注 AI 行业的人都有同样的困扰。
二、技术选型:为什么走搜索 API 这条路
资讯类工具最要紧的是"新"和"全"。这两点,本地知识库给不了——必须让程序在运行时实时联网搜索。
可选的方案我对比过三个:
- 自己写爬虫:要维护站点列表、解析规则、反爬策略。对个人工具来说工程量太大,而且各站点页面结构一改就得跟着改;
- 通用搜索 + 自己清洗:返回的原始页面噪音多,正文抽取、广告过滤都得自己做一遍;
- 结构化搜索 API:直接返回 JSON 字段,程序拿来就能用。
我最终选了第三条路,具体用的是腾讯云的 WSA(联网搜索)服务,看中的是它返回的数据结构:每条结果自带标题、摘要、原文链接、信源名称、发布时间和相关性得分——这六个字段正好覆盖了资讯工具需要的全部信息,我在后面第 4 节的排序里还直接复用了它的相关性得分字段。
从我的实测看,单次调用秒级返回,做每日定时任务完全够用。成本方面,按我当前 8 次/天的调用量计算,一个月 240 次,在免费额度内。
三、接入实践:从开通到第一次调用
3.1 开通与密钥
流程很标准:腾讯云控制台开通 WSA 服务 → 在密钥管理拿到 SecretId / SecretKey。密钥放在 .env 环境变量里,不写进代码,避免泄露。
3.2 装 SDK,写客户端
pip install tencentcloud-sdk-python-wsa python-dotenv
核心代码其实很短:
from tencentcloud.common import credential
from tencentcloud.wsa.v20250508 import models, wsa_client
class SearchClient:
def __init__(self):
cred = credential.Credential(secret_id, secret_key)
self.client = wsa_client.WsaClient(cred, "") # 该接口无需 Region
def search(self, query, mode=2, cnt=10):
req = models.SearchProRequest()
req.from_json_string(json.dumps({
"Query": query, # 搜索词
"Mode": mode, # 0=网页信源 1=权威垂直信源 2=混合
"Cnt": cnt, # 返回条数,仅支持 10/20/30/40/50
}))
resp = self.client.SearchPro(req)
return [json.loads(p) for p in resp.Pages]
这里踩了第一个坑:Cnt 参数是枚举值,只能传 10/20/30/40/50。我一开始传了 3 想省额度,直接报错 InvalidParameter: illegal Cnt。想少要点结果,只能在代码里自己截取。
3.3 第一次真实调用
用文档示例词"三星堆的由来"跑冒烟测试,一次通过。返回 10 条结果,来源包括人民日报、央视新闻、新华网等。每条都带 passage(去噪后的摘要)、date、url,还有一个 score 字段——这是服务端给的相关性打分,后来成了我排序的核心依据。
📷 截图 1:冒烟测试运行结果
四、从搜索结果到早报:四步流水线
搜索只是拿到了原材料,要变成"早报",还需要一条加工流水线。
4.1 多关键词检索
早报分四个板块:大模型与产品动态、科技公司 AI 布局、政策与行业规范、技术前沿与开源。每个板块配 2 个搜索词,跑一轮就是 8 次调用。
4.2 三级去重
资讯场景绕不开重复问题,我做了三层过滤:
- URL 去重:同一个链接被不同关键词搜到,只留一条;
- 标题去重:同一条新闻被不同网站转载,按标题前 15 个字比对,只留信源权重更高的那条;
- 关键词命中去重:一条新闻被多个关键词同时命中,说明它更重要,加分但不重复展示。
4.3 综合评分排序
排序公式一句话就能说清:
综合分 = 0.5 × 搜索相关性 + 0.3 × 时效分 + 0.2 × 信源分
- 搜索相关性直接用接口返回的
score——服务端已经算好了"这条结果跟搜索词有多匹配",直接用就好; - 时效分:24 小时内满分,之后每天扣 0.1,没有日期的老内容按 0.2 兜底;
- 信源分:央媒和头部科技媒体(白名单)记 1.0,其他 0.6。
4.4 渲染输出
每个板块取前 5 名,生成 Markdown 早报:顶部是"一分钟速览",正文每条都带信源、时间、摘要和原文链接,最后附本次生成统计。每条信息可溯源,整个过程可验证。
五、真实运行结果
2026 年 11 月 3 日中午的一次完整运行:
▶ 检索板块:📰 大模型与产品动态
原始 20 条 -> 去重后 11 条(关键词 2 个)
▶ 检索板块:🏢 科技公司 AI 布局
原始 20 条 -> 去重后 9 条(关键词 2 个)
▶ 检索板块:📜 政策与行业规范
原始 20 条 -> 去重后 2 条(关键词 2 个)
▶ 检索板块:🔬 技术前沿与开源
原始 20 条 -> 去重后 3 条(关键词 2 个)
✅ 早报已生成:output\AI早报_20261103.md
共 8 次搜索 API 调用
80 条原始结果,去重过滤后剩 25 条,产出 4 个板块的早报。
当天抓到的内容让我挺惊喜:腾讯 Hy4 和阿里 Qwen4 同周发布的对决、Gemini 安卓版更新、智谱 GLM-5.2 开源、国产 AI 芯片份额反超 GPU——全是近三天的热点,而且来自新浪财经、中国日报网、央广网这样能点回去看的信源。
📷 截图 2:早报 Markdown 渲染效果

六、实际效果与踩坑记录
效率和成本:整轮流程 1 分钟内跑完;每天 8 次调用,一个月 240 次,在免费额度内。
踩过的坑,都记下来了:
- 日期格式不统一:返回的日期有
2026-11-02 18:30:05也有2026/10/30 17:30,横杠斜杠混着来。一开始只解析横杠格式,时效分全算错了,排序大乱,补全格式后修复; - 英文网站混进来:中文搜索词也会返回英文站的内容(比如 Futurepedia),对中文早报是噪音。加了个简单判断:正文里中文字符占比超过 15% 才保留;
- 百科词条捣乱:"AI 助手 产品更新"这个词把百度百科"智能助手"词条顶到了第一位——它跟搜索词确实高度相关,但它不是新闻。教训是关键词别用概念词,要用带事件性的表达,比如"大模型 发布"就比"大模型"好;
- 限频保护:虽然没实际触发,代码里还是加了自动重试,避免批量跑的时候被打断。
下一步计划:接个定时任务,每天早上 7:30 自动生成,再推送到微信或邮箱;还想接上大模型,让它基于当天早报写一段"编辑点评",把搜索和生成串成完整链路。
总结:这个工具解决的是我自己的真实问题。联网搜索接口在其中扮演的角色很关键——它把"获取高质量、带时间标注的资讯"变成了一次 10 行代码就能搞定的接口调用。如果你也在定期追某类信息(行业动态、政策变化、竞品动向),搜索 API 加一段脚本,是个轻量的解法。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)