使用 PHP 构建新闻编辑室 AI 模块
大多数人认为新闻编辑室中的 AI 意味着一个巨大的聊天框。这是一个误区。这种模式会导致人们用过一次就再也不用的功能。
新闻编辑室有数十种细小且具体的需求。你需要标题选项、社交媒体简介、SEO 标题、实体标签。每项工作都很小,但都有其自身的规则。
在与 200 个新闻网站合作后,我找到了构建它的正确方法。不要构建一个单一的“AI 功能”,而是要构建一个由细小、专业的工作流组成的注册表。
以下是使用 PHP 实现的方法:
- 使用任务(tasks)而非提示词(prompts)。任务是一个具有固定契约的命名单元。它知道自己需要什么以及返回什么。
- 在任务内部验证输出。当你想要 JSON 时,模型往往会返回文本。如果任务能够验证自身的输出,你就可以在不破坏编辑器的情况下进行重试或优雅地处理失败。
- 使用基于层级的路由。在廉价模型上运行简单任务。在高级模型上运行法律或风险评估任务。
- 按任务和输入进行缓存。如果编辑对同一篇文章点击了两次按钮,你不应该为第二次 AI 调用付费。缓存是最佳的成本控制手段。
- 将规则留在代码中,将“品味”留在提示词中。不要要求模型检查标题是否少于 70 个字符,使用 PHP 来处理这类工作。使用模型来判断标题是否写得好。代码处理规则,模型处理判断。
将任务分组以保持条理清晰:
• 标题:SEO 标题、社交媒体简介、推送通知。 • 结构:摘要、要点、相关阅读建议。 • 分类:类别建议、标签提取。 • 媒体:替代文本(Alt text)、说明文字、裁剪提示。 • 质量:语调检查、风险标记、脏话过滤。
目标是运营的可靠性。如果 AI 服务商在繁忙的新闻日宕机,你应该只需修改配置文件,而不是重写代码。
成功的两条最终准则:
- 建议仅作为草稿。永远不要让 AI 直接写入已发布的字段。必须由人工进行审核并接受输出结果。
- 在后台运行。如果一项任务耗时超过一秒,请将其作为异步任务运行。不要让编辑们盯着加载界面等待。
先构建架构,模型是次要的。
