织梦AI生成文章自动发布配置

打通选题—生成—入库—发布全链路,让 AI 内容高效落地

AI 自动发布的需求

织梦站点内容运营中,重复性的选题撰写占用了大量人力。接入大模型后,可以实现“选题库 → AI 生成 → 织梦入库 → 定时发布”的全自动流水线,把编辑从机械劳动中解放出来,专注选题策划与质量把控。配置的关键是把 AI 接口、织梦入库逻辑、定时任务三者串起来,并保留人工审核环节。

整体架构

  • 选题库:MySQL 表存储待生成标题与关键词。
  • 生成服务:调用大模型 API 生成文章。
  • 入库脚本:通过织梦 article_add 逻辑写入数据库。
  • 定时任务:crontab 每小时生成 N 篇并发布。
  • 审核队列:生成后状态为“待审”,人工抽检后放行。

步骤一:准备选题库

CREATE TABLE `dede_ai_topics` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(120) NOT NULL,
  `keywords` varchar(200) DEFAULT NULL,
  `catid` smallint(6) NOT NULL COMMENT '目标栏目',
  `status` tinyint(1) DEFAULT '0' COMMENT '0待生成 1已生成',
  `created` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) TYPE=MyISAM;

把提前准备好的标题批量导入,例如每天导入 20 条,AI 每小时生成 3-5 条。

步骤二:对接大模型 API

// plus/aigen/generate.php
function generate_article($title, $keywords) {
    $prompt="请围绕《{$title}》写一篇织梦CMS技术文章," .
              "关键词:{$keywords}。要求:标题h1、分段h2、h3," .
              "800字以上,含代码示例与注意事项,结尾给行动建议。";
    $payload=[
        'model'=> 'gpt-4o',
        'messages'=> [['role'=>'user','content'=>$prompt]],
        'temperature'=> 0.7,
        'max_tokens'=> 2000,
    ];
    $ch=curl_init('https://api.example.com/v1/chat/completions');
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Authorization: Bearer '.$GLOBALS['cfg_ai_apikey'],
        'Content-Type: application/json',
    ]);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $resp=json_decode(curl_exec($ch), true);
    return $resp['choices'][0]['message']['content'];
}
不同模型 API 格式略有差异,文心、通义、Kimi 均可对接,建议按可读性与专业度做对比测试。

步骤三:写入织梦数据库

模拟织梦 article_add.php 的入库逻辑,把 AI 生成内容写入主表与附加表:

require_once dirname(__FILE__).'/../include/common.inc.php';
require_once DEDEINC.'/arc.archives.class.php';

// 1. 写主表
$aid=$dsql->GetOne("SELECT IFNULL(MAX(id),0)+1 AS id FROM dede_archives");
$arcID=$aid['id'];
$dsql->ExecuteNoneQuery("INSERT INTO dede_archives
  (id, typeid, title, writer, source, pubdate, senddate, arcrank, click)
  VALUES ($arcID, $catid, '$title', 'AI助手', '原创',
  ".time().", ".time().", 0, 0)");

// 2. 写附加表
$dsql->ExecuteNoneQuery("INSERT INTO dede_addonarticle (aid, typeid, body)
  VALUES ($arcID, $catid, '".addslashes($body)."')");

// 3. 更新栏目统计
$dsql->ExecuteNoneQuery("UPDATE dede_arctype SET
  totalpart=totalpart+1 WHERE id=$catid");

// 4. 生成静态页
$arc=new Archives($arcID);
$arc->MakeHtml();

步骤四:定时任务编排

# crontab -e
# 每小时第 10 分钟生成 3 篇
10 * * * * /usr/bin/php /www/wwwroot/dedecms/plus/aigen/run.php batch=3
# 每天凌晨把待审转正式发布
0 2 * * * /usr/bin/php /www/wwwroot/dedecms/plus/aigen/approve.php

run.php 从选题库取未生成条目,调 AI 生成并入库;approve.php 把审核通过的文章 arcrank 置 0 并推送到百度。

步骤五:人工审核与质量把控

  • 生成后 arcrank=-1 待审,不直接发布。
  • 后台“所有档案列表”筛“待审核”,编辑抽检。
  • 检查事实准确性、代码可用性、语句通顺。
  • 合格即放行,不合格回退 AI 重写。
  • 合格率低于 80% 时调整 prompt。

质量保障策略

环节措施
选题编辑筛选高价值标题
生成模板化 prompt 约束输出
查重入库前比对历史文章
审核人工抽检 ≥ 30%
监控跟踪收录与排名

注意事项

  • API Key 加密存储,权限 600。
  • 控制生成频率,避免触发 API 限流。
  • AI 生成内容标注来源,遵守平台规则。
  • 定期评估内容质量,迭代 prompt。
  • 避免完全无人值守,保留人工环节。

建议与展望

AI 自动发布是把双刃剑,建议把它定位为“产能放大器”而非“编辑替代者”:选题、审核、运营仍由人主导,AI 负责把好选题快速成稿。把生成质量、收录率、用户停留时长纳入看板,持续优化 prompt 与流程。当织梦站点建立起“人机协作”的内容生产线,既能在量上规模化,又能在质上保持水准,长期获得搜索流量与用户认可。