我是如何用 AI 构建了一个每日更新的 AI 生成新闻站点
如何用 AI 构建了一个 AI 生成新闻站点 - 以及我学到的
大家好,我是一名从事 AI 工作的软件工程师,最近我构建了 Agentic Tribune。这是一个完全自动化的新闻站点,每天发布原创的、基于事实的报道。这是一个有趣且大开眼界的业余项目。
为什么构建它
我一直在思考传统媒体面临的挑战和压力。社交媒体已经吸走了广告收入,导致裁员和倒闭。为了生存,新闻媒体经常诉诸点击诱饵和两极分化。
我开始思考:我是否可以构建一个新闻站点,其中 每一步 都由 AI 执行?更重要的是,它是否可以 有用 和 可信 ?
目标是中立、基于事实的报道,以真实世界的来源为基础:政府发布、法律裁决、财务报告等。没有说服,只是对实际发生的事情的清晰总结。
流程
该系统每天通过 cron jobs 自动运行。它创建:
- 工作日约 22 篇文章/天
- 周末约 12 篇文章/天
该过程是:
- 扫描线索 —— 从结构化 feeds 和最近的新闻标题中提取
- 对线索进行评分/排序 —— 时效性、质量、新闻价值、新颖性
- 选择最佳候选者
- 通过 AI + 搜索 进行背景调查
- 撰写文章
- 自我批评和修改
- 格式化、标记和发布
每篇文章的 API 使用成本约为 $0.25–0.30。这加起来很多,但它可以双向扩展。如果该站点获得关注,我可以扩展它。如果不是,我可以减少它而不会有太多痛苦。
管理 LLM 行为
LLMs 功能强大,但容易分心和出现意外行为。以下是我遇到的一些挑战:
- 如果我要求模型根据一系列指标(如时效性、新闻价值 和 冗余)对线索进行评分,它有时会“奖励”冗余,仅仅因为它是一个高分。我必须对每个指标的 方向 进行归一化。
- 如果我将太多任务合并到一个 prompt 中(例如,“对线索进行评分并撰写一篇关于最佳线索的文章”),它会在它们之间泄露细节。文章将包含来自无关线索的片段。
- 类似地,如果我要求它对正在考虑的事件的“时效性”进行评分,并且 只选择最近的事件,它会为事件编造不正确的最近日期,以捍卫自己的决定。
- 过于 明确通常会适得其反。更简单的 prompts 通常比精心设计的、充满规则的 prompts 效果更好。
- 一般来说,LLMs 似乎对积极要求比对消极要求反应更好。
- 当我要求它以 AP-style 写作时,它将自己呈现为 美联社。需要仔细调整 prompt 才能解决此类问题。
- 如果我可以足够清楚地解释我想要什么,通常 LLM 可以为自己编写更好的 prompt。
为了管理这些问题,我将所有内容分解为清晰的阶段,并在步骤之间进行硬隔离。Prompts 简洁且重点突出。不必要的数据在阶段之间被删除。
我还依赖于 OpenAI 的 function calling APIs,这有助于将响应限制为结构化数据并避免格式漂移。
Brave Search:比预期更好
虽然我最初只使用 OpenAI 的 search-preview
API 进行研究,但我也一直在试验 Brave Search 用于 pipeline 的各个部分。令人惊讶的是,它很容易插入到轻量级的 RAG 系统中,并让模型引用最近的标题或摘要。
使用自定义的、支持搜索的 RAG 系统可以提供更大的灵活性,并且比使用 search-preview
模型更便宜。
技术栈
- 后端:Flask, SQLite, cron jobs 和 python 脚本, prompts 由 Jinja2 模板生成
- 指标:Umami
- 前端:静态 HTML 和 Jinja2 模板
- 图标:全部由 ChatGPT 生成
- 部署:EC2 with Nginx 和 gunicorn
它并不花哨,但在 ChatGPT 的帮助下,我能够在 大约 2-3 周的晚上和周末 从头开始构建一个完整的站点,完全是独自完成的 —— 完全是在工作之外的空闲时间构建的。
我没有使用 IDE 集成的 AI 助手 —— 我的工作流程只是将代码复制/粘贴到聊天窗口并自己编辑。
我选择 SQLite 是因为它易于管理。它没有针对写密集型工作负载进行优化,但这是一个读密集型应用程序。Flask 很简单,而且我一直很喜欢 Jinja2 风格的模板。
如果没有 AI,我可能要花几个月的时间才能完成前端和设计。AI 不会取代我作为软件工程师,但生产力的大幅提升是巨大的。我也永远无法独自创建图标和图像。
成本和规模
目前,我每月仅在 API 调用上花费超过 100 美元,而这个站点可能有用,或者可能只有我一个人阅读。对于一个爱好项目来说,这是一个我愿意支付的价格,如果需要,我可以随时缩减规模。
自定义缩略图将额外花费约 0.04 美元/篇文章,因此目前我只是按“部分”使用静态图像。通过 API 发布到 Twitter 将额外花费 100 美元/月,因此目前自动帖子仅发送到 Bluesky。
我也可以做很多事情来提高文章的质量,例如增加每篇文章的研究深度、评估更广泛的线索集、更多次迭代修改等等,但这需要更高的花费。
我仍在研究的内容
我想添加以下功能:
- 文章赞成票或反应
- 评论 threads (和垃圾邮件过滤)
- Highlight-to-comment 功能
- 除了 Umami 之外的基本分析
- Email 订阅
- 更好地自定义每个部分的文章生成 pipeline
但我正在放慢脚步,并平衡其他时间投入。评论和投票引入了大量的架构复杂性和审核开销。它们还需要一个更适合写密集型工作负载的数据库。目前,我正在观察流量模式、提高内容质量并添加标签和搜索等结构。
更重要的是,我想提高内容的质量。为此,我需要一种获取反馈的方式,而这正是我需要您的投入的地方。
对新闻业的影响
Agentic Tribune 无法取代新闻业 —— 它只能报道已经公开的信息。调查记者、战地记者或追究有权势者责任的采访是无法替代的。
如果这个站点或类似站点可以以低成本提供值得信赖的事件摘要,它们可能会帮助解放人类记者,让他们专注于只有人类才能完成的报道。
如果像这样的站点成功了,它仍然需要一种负责任的方式来资助主要信息来源,而不仅仅是已经公开的信息。那样的未来会是什么样子?这可以以道德的方式完成吗?社会会因此获得更多还是更少的信息?
发布
我计划很快在 Product Hunt 和 Indie Hackers 上进行软发布。我还将选定的标题发布到 Bluesky (自动) 和 Twitter (手动,目前)。
最后的想法
这是一个有趣的爱好,但它不是免费的。我正在花费时间和金钱在 可能 有用的事情上。
我很乐意听到您的反馈:该站点是否有用?您会定期阅读它吗?缺少什么?您会信任显示其来源的 AI 生成的文章吗?您是否更喜欢不同的写作风格?
AI 生成的新闻是一种不可避免的市场进步,还是对新闻业的错误理解?或者两者兼而有之?
在此处查看: https://agentictribune.com 并在下面评论。