CarefreeCMS 文档CarefreeCMS 文档
指南
  • 内容管理
  • 多站点管理
  • AI文章生成
  • SEO优化
  • 静态化生成
API
  • FAQ
  • 更新日志
  • 贡献指南
  • v1.3.0
  • v1.2.0
  • v1.1.0
GitHub
指南
  • 内容管理
  • 多站点管理
  • AI文章生成
  • SEO优化
  • 静态化生成
API
  • FAQ
  • 更新日志
  • 贡献指南
  • v1.3.0
  • v1.2.0
  • v1.1.0
GitHub
  • 功能特性

    • 内容管理
    • 多站点管理
    • AI 文章生成
    • AI 内容生成
    • SEO 优化
    • 静态化生成
    • 评论系统
    • 用户系统

AI 内容生成

CarefreeCMS 集成了强大的 AI 内容生成功能,支持多种 AI 模型,帮助你快速创作高质量内容。

功能特点

多模型支持

  • OpenAI:GPT-3.5、GPT-4 系列
  • 通义千问:阿里云大模型
  • 文心一言:百度大模型
  • Gemini:Google 大模型
  • Claude:Anthropic 大模型

智能生成

  • 文章生成:根据主题自动生成完整文章
  • 续写功能:基于已有内容智能续写
  • 改写优化:优化和改写现有内容
  • 标题生成:自动生成吸引人的标题
  • 摘要生成:从正文提取核心摘要
  • SEO 优化:生成 SEO 友好的内容

提示词模板

  • 预设多种场景模板
  • 支持自定义模板
  • 参数化提示词
  • 模板分享

快速开始

配置 API Key

后台配置

进入 系统设置 → AI 配置:

  1. 选择服务商(OpenAI / 通义千问 / 文心一言等)
  2. 输入 API Key
  3. 选择默认模型
  4. 保存配置

环境变量配置

编辑 .env 文件:

# OpenAI 配置
AI_PROVIDER=openai
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxx
OPENAI_MODEL=gpt-3.5-turbo

# 或使用通义千问
AI_PROVIDER=qwen
QWEN_API_KEY=sk-xxxxxxxxxxxxxxxx
QWEN_MODEL=qwen-plus

第一次使用

  1. 进入 内容管理 → 文章管理 → 新建文章
  2. 点击编辑器上方的 AI 生成 按钮
  3. 输入文章主题或提示词
  4. 选择生成类型(完整文章/续写/改写)
  5. 点击 生成 按钮
  6. 查看生成结果,可以重新生成或编辑

使用场景

场景一:生成完整文章

操作步骤

  1. 点击 AI 生成 按钮
  2. 选择 生成文章
  3. 填写信息:
    • 主题:人工智能在医疗领域的应用
    • 字数:800
    • 风格:专业科普
    • 目标读者:普通读者
  4. 点击生成

生成结果

系统会生成包含以下内容的文章:

  • 标题
  • 引言
  • 3-5 个小节的正文
  • 总结
  • 可选的参考资料

场景二:智能续写

使用方法

  1. 在编辑器中写入开头部分
  2. 光标定位到需要续写的位置
  3. 点击 AI 续写 按钮
  4. AI 会基于上下文智能续写

示例

已有内容:
人工智能技术正在深刻改变医疗行业。从疾病诊断到药物研发,AI 的应用越来越广泛。

点击续写后生成:
例如,在影像诊断领域,AI 算法可以快速准确地识别 X 光片、CT 和 MRI 扫描中的异常。
研究表明,在某些特定疾病的诊断上,AI 的准确率已经超过了人类医生......

场景三:内容改写

改写类型

  • 扩写:增加细节和案例
  • 缩写:提炼核心要点
  • 换个说法:保持意思,改变表达
  • 风格转换:正式↔轻松,专业↔通俗

操作

  1. 选中需要改写的文本
  2. 点击 AI 改写
  3. 选择改写类型
  4. 查看改写结果

场景四:生成 SEO 内容

SEO 优化功能

  1. 输入目标关键词
  2. AI 自动生成包含关键词的内容
  3. 优化标题和摘要
  4. 生成 meta 描述

示例

关键词:云计算、企业数字化转型

生成的标题:
云计算如何助力企业数字化转型:5大关键优势

生成的摘要:
本文深入探讨云计算在企业数字化转型中的重要作用,
分析5大关键优势,帮助企业更好地利用云计算技术...

Meta 描述:
了解云计算如何推动企业数字化转型,掌握云计算的核心优势,
为您的企业数字化之路提供实用指南。

提示词模板

内置模板

技术博客模板

你是一名资深技术博主,擅长将复杂的技术概念讲解得通俗易懂。

请撰写一篇关于"{主题}"的技术博客文章,要求:
1. 字数:{字数}字左右
2. 面向人群:{技术水平}开发者
3. 包含实际代码示例
4. 语言简洁明了,避免过于学术化

文章结构:
- 引言:说明技术的背景和重要性
- 核心概念:解释关键概念
- 实践案例:提供具体示例
- 最佳实践:总结使用建议
- 总结:概括要点

新闻报道模板

你是一名专业记者,请根据以下信息撰写新闻报道:

主题:{主题}
关键信息:{关键点}

要求:
1. 标题简洁有力
2. 导语包含 5W1H
3. 客观中立,事实准确
4. 字数 500 字左右
5. 倒金字塔结构

产品文案模板

你是一名营销文案专家,请为"{产品名称}"撰写宣传文案。

产品信息:
- 类型:{类型}
- 核心功能:{功能}
- 目标用户:{用户}
- 主要卖点:{卖点}

要求:
1. 标题吸引眼球(10字内)
2. 3段正文,突出卖点
3. 包含行动号召
4. 整体 300 字左右
5. 风格:{专业/轻松/煽情}

自定义模板

创建模板

进入 系统管理 → 提示词模板 → 新建模板

模板名称:产品评测
分类:评测
模板内容:
---
你是一名专业的产品评测师。

请对"{产品名称}"进行全面评测,包括:

1. 外观设计({权重}%)
2. 功能特性({权重}%)
3. 使用体验({权重}%)
4. 性价比分析({权重}%)

评测要求:
- 客观公正,有理有据
- 包含具体测试数据
- 列出优缺点
- 给出评分和购买建议
- 字数:{字数}字
---

变量:
- product_name: 产品名称
- weight: 权重
- word_count: 字数

使用模板

  1. 选择模板
  2. 填写变量值
  3. 生成内容

高级功能

批量生成

批量生成文章

// 批量生成
$topics = [
    '人工智能的发展趋势',
    '云计算在企业中的应用',
    '区块链技术解析',
];

foreach ($topics as $topic) {
    Queue::push('app\job\AIGenerate', [
        'type' => 'article',
        'topic' => $topic,
        'length' => 1000,
    ]);
}

后台操作

  1. 进入 内容管理 → 批量生成
  2. 导入主题列表(Excel/CSV)
  3. 配置生成参数
  4. 开始批量生成
  5. 查看生成进度

定时生成

设置定时任务

// 每天定时生成一篇文章
class DailyArticle
{
    public function generate()
    {
        $topics = [
            '今日科技要闻',
            '行业动态分析',
        ];

        $topic = $topics[array_rand($topics)];

        $ai = new AIService();
        $content = $ai->generate([
            'prompt' => "写一篇关于{$topic}的文章",
            'length' => 800,
        ]);

        Article::create([
            'title' => $this->extractTitle($content),
            'content' => $content,
            'status' => 'draft', // 保存为草稿
        ]);
    }
}

Crontab 配置:

# 每天上午 9 点生成
0 9 * * * cd /var/www/cms && php think ai:daily

内容审核

自动审核

class ContentReview
{
    public function review($content)
    {
        $issues = [];

        // 检查敏感词
        if ($this->hasSensitiveWords($content)) {
            $issues[] = '包含敏感词';
        }

        // 检查原创度
        $similarity = $this->checkSimilarity($content);
        if ($similarity > 0.8) {
            $issues[] = '原创度过低';
        }

        // 检查可读性
        $readability = $this->checkReadability($content);
        if ($readability < 60) {
            $issues[] = '可读性较差';
        }

        return [
            'passed' => empty($issues),
            'issues' => $issues,
        ];
    }
}

人工审核

  1. AI 生成内容自动标记为"待审核"
  2. 编辑审核内容
  3. 通过或退回修改
  4. 发布

版本对比

保存多个版本

// 生成多个版本供选择
$versions = [];

for ($i = 0; $i < 3; $i++) {
    $content = $ai->generate([
        'prompt' => $prompt,
        'temperature' => 0.7 + ($i * 0.1),
    ]);

    $versions[] = [
        'content' => $content,
        'score' => $this->scoreContent($content),
    ];
}

// 按评分排序
usort($versions, function($a, $b) {
    return $b['score'] - $a['score'];
});

return $versions;

前端展示

在编辑器中显示多个版本,用户可以:

  • 查看对比
  • 选择最佳版本
  • 合并多个版本

API 调用

基础调用

// 前端调用
axios.post('/api/ai/generate', {
  type: 'article',
  prompt: '写一篇关于云计算的文章',
  params: {
    length: 1000,
    style: 'professional'
  }
})
.then(response => {
  console.log(response.data.content);
});

流式输出

// 实时显示生成过程
const eventSource = new EventSource('/api/ai/stream?prompt=' + encodeURIComponent(prompt));

eventSource.onmessage = function(event) {
  const data = JSON.parse(event.data);

  if (data.type === 'content') {
    // 追加内容
    editor.insertText(data.text);
  } else if (data.type === 'done') {
    // 生成完成
    eventSource.close();
  }
};

后端实现

class AIController
{
    public function generate()
    {
        $prompt = request()->post('prompt');
        $params = request()->post('params', []);

        $ai = new AIService();
        $content = $ai->generate([
            'prompt' => $prompt,
            'max_tokens' => $params['length'] ?? 1000,
            'temperature' => $params['temperature'] ?? 0.7,
        ]);

        return json([
            'code' => 200,
            'data' => ['content' => $content],
        ]);
    }

    public function stream()
    {
        header('Content-Type: text/event-stream');
        header('Cache-Control: no-cache');

        $prompt = request()->param('prompt');

        $ai = new AIService();
        $ai->generateStream($prompt, function($text) {
            echo "data: " . json_encode([
                'type' => 'content',
                'text' => $text,
            ]) . "\n\n";
            ob_flush();
            flush();
        });

        echo "data: " . json_encode(['type' => 'done']) . "\n\n";
    }
}

费用管理

用量统计

后台查看

进入 系统管理 → AI 用量统计:

  • 今日/本月/总计请求次数
  • Token 使用量
  • 预估费用
  • 按用户统计

数据记录

class AIUsageLog extends Model
{
    public static function record($data)
    {
        self::create([
            'user_id' => $data['user_id'],
            'provider' => $data['provider'],
            'model' => $data['model'],
            'prompt_tokens' => $data['prompt_tokens'],
            'completion_tokens' => $data['completion_tokens'],
            'total_tokens' => $data['total_tokens'],
            'cost' => $data['cost'],
            'create_time' => time(),
        ]);
    }
}

配额管理

设置限额

'quota' => [
    'daily_requests' => 100,      // 每日请求限制
    'daily_tokens' => 50000,      // 每日 Token 限制
    'monthly_cost' => 100,        // 每月费用限制(元)
],

检查配额

class QuotaChecker
{
    public function check($userId)
    {
        $today = date('Y-m-d');

        $usage = AIUsageLog::where('user_id', $userId)
            ->whereTime('create_time', $today)
            ->sum('total_tokens');

        $limit = config('ai.quota.daily_tokens');

        if ($usage >= $limit) {
            throw new Exception('今日配额已用完');
        }

        return true;
    }
}

费用告警

class CostAlert
{
    public function check()
    {
        $monthCost = AIUsageLog::whereTime('create_time', 'month')
            ->sum('cost');

        $threshold = config('ai.quota.monthly_cost') * 0.8;

        if ($monthCost >= $threshold) {
            // 发送告警
            Queue::push('app\job\SendEmail', [
                'email' => config('app.admin_email'),
                'subject' => 'AI 费用告警',
                'content' => "本月 AI 费用已达 {$monthCost} 元",
            ]);
        }
    }
}

最佳实践

提示词优化

  • 明确具体的要求
  • 提供足够的上下文
  • 指定输出格式
  • 使用示例引导

质量控制

  • 人工审核重要内容
  • 设置敏感词过滤
  • 检查原创度
  • 适当编辑和修改

成本优化

  • 选择合适的模型
  • 控制生成长度
  • 使用缓存减少重复生成
  • 定期清理无用内容

故障排查

常见问题

无法生成内容

检查:

  1. API Key 是否正确
  2. 账户是否有余额
  3. 网络是否正常
  4. 查看错误日志

生成质量不佳

改进:

  1. 优化提示词
  2. 调整 temperature 参数
  3. 更换更强的模型
  4. 提供更多上下文

生成速度慢

优化:

  1. 减少生成长度
  2. 使用更快的模型
  3. 启用缓存
  4. 使用流式输出

相关资源

  • AI 服务商配置
  • AI 模型配置
  • 提示词工程
  • 文章管理
在 GitHub 上编辑此页
Prev
AI 文章生成
Next
SEO 优化