AI 内容生成
CarefreeCMS 集成了强大的 AI 内容生成功能,支持多种 AI 模型,帮助你快速创作高质量内容。
功能特点
多模型支持
- OpenAI:GPT-3.5、GPT-4 系列
- 通义千问:阿里云大模型
- 文心一言:百度大模型
- Gemini:Google 大模型
- Claude:Anthropic 大模型
智能生成
- 文章生成:根据主题自动生成完整文章
- 续写功能:基于已有内容智能续写
- 改写优化:优化和改写现有内容
- 标题生成:自动生成吸引人的标题
- 摘要生成:从正文提取核心摘要
- SEO 优化:生成 SEO 友好的内容
提示词模板
- 预设多种场景模板
- 支持自定义模板
- 参数化提示词
- 模板分享
快速开始
配置 API Key
后台配置
进入 系统设置 → AI 配置:
- 选择服务商(OpenAI / 通义千问 / 文心一言等)
- 输入 API Key
- 选择默认模型
- 保存配置
环境变量配置
编辑 .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
第一次使用
- 进入 内容管理 → 文章管理 → 新建文章
- 点击编辑器上方的 AI 生成 按钮
- 输入文章主题或提示词
- 选择生成类型(完整文章/续写/改写)
- 点击 生成 按钮
- 查看生成结果,可以重新生成或编辑
使用场景
场景一:生成完整文章
操作步骤
- 点击 AI 生成 按钮
- 选择 生成文章
- 填写信息:
- 主题:人工智能在医疗领域的应用
- 字数:800
- 风格:专业科普
- 目标读者:普通读者
- 点击生成
生成结果
系统会生成包含以下内容的文章:
- 标题
- 引言
- 3-5 个小节的正文
- 总结
- 可选的参考资料
场景二:智能续写
使用方法
- 在编辑器中写入开头部分
- 光标定位到需要续写的位置
- 点击 AI 续写 按钮
- AI 会基于上下文智能续写
示例
已有内容:
人工智能技术正在深刻改变医疗行业。从疾病诊断到药物研发,AI 的应用越来越广泛。
点击续写后生成:
例如,在影像诊断领域,AI 算法可以快速准确地识别 X 光片、CT 和 MRI 扫描中的异常。
研究表明,在某些特定疾病的诊断上,AI 的准确率已经超过了人类医生......
场景三:内容改写
改写类型
- 扩写:增加细节和案例
- 缩写:提炼核心要点
- 换个说法:保持意思,改变表达
- 风格转换:正式↔轻松,专业↔通俗
操作
- 选中需要改写的文本
- 点击 AI 改写
- 选择改写类型
- 查看改写结果
场景四:生成 SEO 内容
SEO 优化功能
- 输入目标关键词
- AI 自动生成包含关键词的内容
- 优化标题和摘要
- 生成 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: 字数
使用模板
- 选择模板
- 填写变量值
- 生成内容
高级功能
批量生成
批量生成文章
// 批量生成
$topics = [
'人工智能的发展趋势',
'云计算在企业中的应用',
'区块链技术解析',
];
foreach ($topics as $topic) {
Queue::push('app\job\AIGenerate', [
'type' => 'article',
'topic' => $topic,
'length' => 1000,
]);
}
后台操作
- 进入 内容管理 → 批量生成
- 导入主题列表(Excel/CSV)
- 配置生成参数
- 开始批量生成
- 查看生成进度
定时生成
设置定时任务
// 每天定时生成一篇文章
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,
];
}
}
人工审核
- AI 生成内容自动标记为"待审核"
- 编辑审核内容
- 通过或退回修改
- 发布
版本对比
保存多个版本
// 生成多个版本供选择
$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} 元",
]);
}
}
}
最佳实践
提示词优化
- 明确具体的要求
- 提供足够的上下文
- 指定输出格式
- 使用示例引导
质量控制
- 人工审核重要内容
- 设置敏感词过滤
- 检查原创度
- 适当编辑和修改
成本优化
- 选择合适的模型
- 控制生成长度
- 使用缓存减少重复生成
- 定期清理无用内容
故障排查
常见问题
无法生成内容
检查:
- API Key 是否正确
- 账户是否有余额
- 网络是否正常
- 查看错误日志
生成质量不佳
改进:
- 优化提示词
- 调整 temperature 参数
- 更换更强的模型
- 提供更多上下文
生成速度慢
优化:
- 减少生成长度
- 使用更快的模型
- 启用缓存
- 使用流式输出
