open311-pipeline:芝加哥 311 市民服务请求的流式 LLM 紧迫度分类与数据仓库流水线
tjromack/open311-pipeline · Streaming civic-data pipeline: Chicago 311 → Kafka → Claude urgency classification (Langfuse-traced) → DuckDB or Snowflake via idempotent MERGE → dbt SLA marts. Runs with no accounts: make demo-local.
ELI5:它是什么,解决什么问题
核心能力与快速开始
★ 0 · Python
- 能做什么
- 支持「流 → 分类 → 数据仓库 → 建模」全流程:轮询 Open311 并发布到 Kafka(按 service_request_id 分键);使用 Claude Haiku 4.5 进行结构化输出的紧迫度分类,每次调用记录为 Langfuse trace(含 prompt、结构化输出、token 计数与 prompt_version),trace ID 存回仓库行;分类或解析失败路由到 civic.requests.dlq 而非中断消费者;通过幂等 MERGE 写入 DuckDB(默认)或 Snowflake;用 dbt 构建 staging / intermediate / marts,产出部门 SLA 合规度模型。附带无需账号与 API key 的本地演示:回放 300 条真实芝加哥 311 请求及其实际模型标签(CLASSIFIER_MODE=replay),另加载城市门户整财年夹具并对比「仅已关闭」与「整体创建队列」的 SLA 口径。含 61 个 pytest 测试与 45 个 dbt 数据测试,覆盖上游 API 异常(429、畸形记录、重复轮询)、schema 漂移、DLQ 路由、MERGE 幂等、门户加载与标签一致性等失效模式。
- 适用场景
- 适合数据/分析工程师评估「把 LLM 分类当作带 tracing、DLQ 与数据测试的流水线阶段」这一模式;作为运营团队需要模型增强事件进入可用 SQL 审计的仓库时的可复用模板;用于演示流式 LLM 分类接入数据仓库时的幂等 MERGE、死信队列与 dbt 漂移检测实践;借助本地无账号演示快速观察「仅统计已关闭请求」对 SLA 合规度的向上偏差(README 称 FY2026 约高估 6.2 个百分点)。
- 项目形态
- 开发框架
- 部署方式
- 提供本地演示路径:make demo-local(需 Docker,夹具经 Kafka 到 DuckDB 并跑 dbt build 与 SLA 报告)与 make demo-local-nokafka(无 Docker,约 10 秒);本地分类需设置 ANTHROPIC_API_KEY 以接入 Claude 实时调用。门户整财年加载命令 make portal-load FY=2026 约 22 分钟下载,仓库增至约 230 MB。README 称曾于 2026-05-27 在 Snowflake 上做过实况验证,但该 Snowflake 试用已过期,门户路径仅写入 DuckDB。
- 主要依赖
- Python 3.12;依赖 requirements.txt(含 Kafka、DuckDB、dbt 等);本地完整演示需 Docker 运行。实时分类需 ANTHROPIC_API_KEY。README 提到每次分类约 1,290 输入 token、约 100 输出 token,按 Haiku 4.5 的每百万 token 1 美元 / 5 美元计价约每次 0.0018 美元(300 次约 0.54 美元,约每 1,000 次 1.80 美元);对 210 万行做逐请求标注预估约 3,800 美元,因此门户路径按服务类型分类。其他部署条件、硬件与 API 成本限制未说明。
- 使用限制
- README 自述局限:仅覆盖单一城市(芝加哥)Open311 流、单一 7 天窗口与 300 条分类标签,按类别统计的 SLA 百分比样本量小(如 4 条鼠患投诉),仅为线索而非结论;该样本的 SLA 数值因只取已关闭请求而偏高(Low 的 153/153 属构造使然);门户路径的紧迫度按服务类型而非逐请求给定(与逐请求标签一致率 97%,240 条中 232 条),FY 数据为 2026-10-06 快照,仍有 1,365 条待处理,1,066 条被重复引用引到的父请求不在公开门户中;门户路径仅写 DuckDB,其模型能在 Snowflake 解析但未在其上运行;SLA 阈值是项目自设而非芝加哥官方标准,项目不派单、不预测关闭时间;分类器与盲标人工标签的精确一致率为 54%(剔除涂鸦为 39%),Cohen's κ 为 0.32。未说明其他限制。
- 许可证
- MIT
- 最近推送
- 2026-10-07 09:03
资料检查:2026-10-08 07:00 · 卡片整理:2026-10-08 07:00
卡片由 AI 根据仓库资料整理,未进行安装或运行验证 · 本次更新未完成,保留上次成功内容
职业应用
程序员
作为可复用的「流 → 分类 → 数据仓库 → 建模」流水线模板,供数据/分析工程师评估该模式:轮询 Open311 请求、写入 Kafka、用 Claude Haiku 4.5 做结构化输出的紧迫度分级、失败进入死信队列、通过幂等 MERGE 写入 DuckDB 或 Snowflake,再由 dbt 构建 SLA 数据模型;仓库含 61 个 pytest 测试与 45 个 dbt 数据测试,覆盖 schema 漂移、DLQ、MERGE 幂等性等失效模式,可用于参考实现与测试设计。
查看内容依据
A working civic-data pipeline and a reusable template for **stream → classify → warehouse → model**
由 AI 根据来源材料整理,未进行安装或运行验证
产品经理
用于数据分析与 SLA 合规度衡量:项目提供无需账号、无需 API key 的本地演示,回放 300 条真实芝加哥 311 请求及其由 Claude Haiku 4.5 标注的标签,并可从城市数据门户加载整个财年(约 212 万行)测量整体队列的 SLA 合规度,输出部门 SLA 合规度数据模型,供产品经理参考市民请求的紧迫度分级与合规度分析。
查看内容依据
dbt turns them into department SLA-compliance marts
由 AI 根据来源材料整理,未进行安装或运行验证
讨论 0
登录后参与讨论,阅读资讯无需注册。
还没有评论,来分享第一个看法。