使用卡夫卡、德尔塔湖和大型语言模型构建人工智能增强的新闻情报管道

发布日期:2026-04-30 10:34:50   浏览量 :1
发布日期:2026-04-30 10:34:50  
1

2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家 

我如何构建一个使用大语言模型作为转换层、并使用 Delta Lake 进行有状态内容版本控制的流式处理管道

我的第一个作品集项目(弹道学)是批处理模式——按计划调用应用程序接口,使用 Airflow 进行编排,以及使用亚马逊简单存储服务作为数据落地区。我的第二个项目(脉搏)是流式处理模式——使用卡夫卡,实现精确一次交付,并在 dbt 中进行会话分析。两者都使用了相同的转换工具(dbt),但采用了不同的数据摄入模式。

哨兵是第三个项目,而核心问题发生了变化。弹道学和脉搏处理的是结构化数据——来自应用程序接口的 JSON 数据和模拟的点击流事件。当原始数据是非结构化时会发生什么?当“转换”不再是结构化查询语言模型,而是一个从原始超文本标记语言中提取实体、情感倾向和摘要的大语言模型时呢?

哨兵是一个新闻情报管道,它从多个来源摄入文章,使用大语言模型提取结构化数据,并通过应用程序接口和仪表板提供服务。它不是一个产品,而是对人工智能增强型数据工程模式的可行性验证。

我构建的内容

全球事件、语言和语调数据库 + 简易信息聚合 ──► 卡夫卡 ──► 抓取器 ──► 卡夫卡 ──► 大语言模型解析器 ──► 卡夫卡 ──► 青铜层写入器 ──► Delta Lake ──► FastAPI
                  │                                    │                       │                │
               Redis 一级/二级                      死信队列主题          Delta Lake 写入    PySpark 合并
               (去重网关)                         (指数退避)                                  (变更数据反馈)

两个生产者(全球事件、语言和语调数据库和一个包含18个源头的简易信息聚合器)发现文章网址并将它们推送到卡夫卡。一个抓取器消费者检索超文本标记语言内容。一个大语言模型解析器提取结构化数据——标题、作者、公司、人物、主题、情感倾向、摘要——并将其生产到 parsed_articles(已解析文章)主题中。一个青铜层写入器消费者从该主题读取数据并写入 Delta Lake。一个 PySpark 作业使用有状态的合并操作将青铜层数据转换为白银层数据。FastAPI 将白银层数据提供给一个 React 仪表板。

所有服务均在 Docker 中本地运行——包括处于 KRaft 模式的卡夫卡、Redis 和仪表板。生产者、抓取器和解析器都是长期运行的 Python 服务。

架构

┌──────────────┐
│ 全球事件、   │──┐    ┌─────────────┐     ┌─────────────┐
│ 语言和语调   │  ├───►│ Redis 去重  │────►│sentinel.urls│
│   数据库     │  │    │  一级+二级  │     └──────┬──────┘
│   生产者     │  │    │    键值     │            │
└──────────────┘  │    └─────────────┘            │
┌──────────────┐  │                               ▼
│  简易信息    │──┘                        ┌─────────────────────┐
│  聚合器      │                        │ 抓取器 (事务)       │
│  (18个源)    │                        │ 开始→抓取→提交      │
└──────────────┘                        └──────────┬──────────┘
                                                   ▼
                                        ┌──────────────────┐
                                        │sentinel.raw_html │
                                        └──────────┬───────┘
                                                   ▼
                                        ┌─────────────────────┐
                                        │ 大语言模型解析器    │
                                        │ (事务)              │
                                        │ OpenAI / Anthropic  │
                                        │ / DeepSeek          │
                                        └──────────┬──────────┘
                      ┌──────────┐                 │
                      │  死信    │◄── 失败        │
                      │  队列    │                 │
                      │  重放    │                 │
                      │1分→5分→30分│                 │
                      └──────────┘ 

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
支持 反馈 订阅 数据
回到顶部