资讯详情

DeFlock内容管理进阶:用Directus扩展+GPT-4o-mini自动提取新闻数据

📅 2026/10/16 14:56:06 | 华诺云谱 👁 阅读
DeFlock内容管理进阶:用Directus扩展+GPT-4o-mini自动提取新闻数据
【免费下载链接】deflockCrowdsourced tool for locating and reporting ALPRs项目地址https://gitcode.com/gh_mirrors/de/deflock点击查看免费下载DeFlock 是一个开源的群众参与式工具用于定位和举报 ALPR自动车牌识别摄像头。除了地图数据它还需要持续记录各地社区抵制 ALPR 的胜利新闻——而 DeFlock 的 Recent Victories 板块正是从新闻文章里逐条录入城市、时间、结果等字段的。本文带你看看 DeFlock 如何用Directus 扩展 GPT-4o-mini把粘贴新闻链接 → 自动生成结构化数据变成一次点击的事。为什么需要新闻数据自动提取DeFlock 的 City Council 页面有一块 Recent Victories 表格展示各城市拒绝/取消 ALPR 合同的最新进展字段包括字段含义示例cityState城市州Denver, COmonthYear发生时间June 2025outcome结果类型Contract Canceleddescription摘要含原文跳转链接The councilcanceled their contract…新闻稿是这些记录的原始素材——传统做法是运营人员手动阅读文章、逐个字段填写既慢又容易出错。这些数据存放在 Directus 内容管理系统中前端通过 blogService.ts 和 cmsService.ts 等 API 服务读取。DeFlock 用 Directus 管理博客、章节chapters、供应商lprVendors等内容而胜利记录的录入效率就是本文要解决的问题。整体架构一个 Directus Bundle 扩展搞定核心方案是仓库中的 import-win 扩展它是一个标准的 Directusbundle同时打包了两类扩展Endpoint后端接口/import-win负责抓取新闻正文并调用 GPT-4o-mini 提取字段Interface前端控件win-importer一个粘贴 URL 点 Import的界面组件城市终止 ALPR 合同的场景正是这个扩展要自动归档的数据类型。在 package.json 中可以看到扩展通过directus:extension字段声明了两个入口依赖只有cheerio解析 HTML和openai调用模型非常轻量。后端GPT-4o-mini 提示词设计是灵魂后端逻辑在 src/api/index.js流程分三步第一步抓取并清洗文章正文接口用fetch抓取 URL带浏览器 User-Agent15 秒超时再用 cheerio 移除script / style / nav / footer / header / aside等噪音标签只留纯文本截取前 12000 字符。第二步用系统提示词约束输出系统提示词 定义了提取任务的游戏规则要求模型只返回合法 JSON配合response_format: { type: json_object }明确 6 个字段year、month、city、state、outcome、descriptionoutcome只能是三选一Contract Canceled/Contract Rejected/Cameras Deactivated并给出每种的判定定义特别要求description中用a标签包裹关键动词短语并链回原文例如The council a hrefARTICLE_URL target_blankcanceled their contract/a by a 6-2 vote.这个细节很关键——前端表格的展开行就是用v-html渲染description用户可以直接从摘要跳回新闻原文无需运营人员手动加链接。第三步转换成 CMS 字段格式模型输出再经toCmsPayload()映射为 CMS 实际字段例如把year/month拼成June 2025、把city state拼成Denver, CO直接对应 Directus 集合中的字段名。接口还做了基本的健壮性处理未登录返回401、缺参数返回400、服务端未配置OPENAI_API_KEY返回500、抓取失败返回422。前端一键 Import 的界面体验界面组件 用 Vuetify 实现只有两个元素一个 URL 输入框placeholderhttps://example.com/article一个带 loading 状态的Import按钮点击后组件调用api.post(/import-win, { url })拿到结果后对 4 个字段逐一emit(setFieldValue, ...)自动填充 Directus 数据表对应的输入框。如果请求失败错误信息如OPENAI_API_KEY is not configured on the server会直接显示在按钮下方运营人员立即可见原因。这些数据最终服务于说服城市议会这一场景——Council 页面同时提供演讲模板、谈资库等工具。整个界面扩展在 src/interface/index.js 中注册hideLabel/hideLoader设为 true让控件在 Directus 编辑页中不占额外空间只留一行输入框。数据如何流到 DeFlock 网站运营人员在 Directus 后台保存记录后数据会通过 CMS API 被前端消费CouncilView.vue 中的fetchRecentWins()拉取最新胜利记录按monthYear倒序渲染到 Recent Victories 表格展开行用v-html渲染带原文链接的摘要配合mdi-check-bold图标展示结果此外仓库里还有一个配套扩展 purge-cf-cache它监听 Directus 的items.create / items.update / items.delete动作自动调用 Cloudflare API 清除对应内容的缓存前缀保证新录入的新闻数据能实时出现在生产网站上而不是被 CDN 缓存住。本地部署三步跑起来DeFlock 的 CMS 用 Docker Compose 编排配置文件见 cms/docker-compose.yml。本地运行只需在cms/目录准备环境变量关键是SECRET、OPENAI_API_KEY以及缓存扩展用的CF_API_KEY、CF_ZONE_ID执行docker compose up -dDirectus 11.5.1 会挂载本地./extensions目录到容器内由于配置了EXTENSIONS_AUTO_RELOAD: trueimport-win 扩展 的代码修改会自动热加载开发时无需重启容器小贴士扩展源码在 cms/extensions/import-win/src/修改提示词或字段映射后配合EXTENSIONS_AUTO_RELOAD即可立即生效非常适合快速调优提取效果。这套方案值得借鉴的 3 个点提示词即 Schema把目标字段、取值枚举、格式要求全部写进系统提示词模型输出即可直接入库省去二次清洗JSON Mode 前端校验response_format: json_object保证输出可解析接口层再逐层 try/catch错误信息对运营人员友好CMS 原生扩展 独立脚本用 Directus 的 Endpoint Interface 机制让 AI 能力直接长在数据录入界面里非技术背景的内容维护者也能零学习成本使用DeFlock 的全国地图界面——内容管理层的每次更新最终都会服务于这张众包地图背后的数据生态。常见问题 FAQQ为什么选 GPT-4o-mini 而不是更大的模型新闻摘要字段提取属于结构化信息抽取mini 级别模型完全胜任且延迟和成本都低得多。对高频录入场景够用快比更强更重要。Q如果文章抓取失败怎么办接口会返回422 Failed to fetch article: ...常见原因是网站反爬或 URL 失效换个可访问的报道链接即可。Qoutcome 三分类不够用想加新类别怎么办只需同步修改 SYSTEM_PROMPT 中的枚举定义 和 Directus 集合的字段选项两处保持一致即可。通过import-win这个不到百行的 Directus 扩展DeFlock 把读新闻—抄字段—加链接的重复劳动压缩成了一次粘贴这就是 LLM 与内容管理系统结合的最小可行范式提示词定规则CMS 管数据扩展做桥梁。赞分享【免费下载链接】deflockCrowdsourced tool for locating and reporting ALPRs项目地址https://gitcode.com/gh_mirrors/de/deflock点击查看免费下载相关推荐REFramework 快速上手mod 框架、崩溃修复与 VR 支持一框搞定REFramework 快速上手mod 框架、崩溃修复与 VR 支持一框搞定 RE8 一启动就闪退第三方脚本全被禁用。REFramework 是面向 RE游戏开发逆向工程插件系统如何用requests-html轻松解析新闻网站自动提取文章内容与评论的完整指南如何用requests html轻松解析新闻网站自动提取文章内容与评论的完整指南 requests html是一个为人类设计的Python HTML解析库它网页爬虫DeFlock基础设施实践Terraform部署LambdaDirectus备份自动化DeFlock基础设施实践Terraform部署LambdaDirectus备份自动化 本文以开源社区项目 DeFlock 众包定位与上报 ALPR 车牌创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑