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 服务商配置
    • AI 模型配置
    • 提示词工程
  • 系统管理

    • 定时任务
    • 日志管理
    • 安全指南
    • 性能优化

AI 服务商配置

本文介绍如何配置不同的 AI 服务商,用于 AI 内容生成功能。

支持的服务商

CarefreeCMS 支持以下 AI 服务商:

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

配置方式

OpenAI

获取 API Key

  1. 访问 OpenAI Platform
  2. 注册并登录账号
  3. 进入 API Keys 页面
  4. 创建新的 API Key

配置

编辑 .env 文件:

AI_PROVIDER=openai
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxx
OPENAI_BASE_URL=https://api.openai.com/v1
OPENAI_MODEL=gpt-3.5-turbo

参数说明

  • AI_PROVIDER: 服务商标识
  • OPENAI_API_KEY: API 密钥
  • OPENAI_BASE_URL: API 基础地址(可选,使用代理时修改)
  • OPENAI_MODEL: 默认模型

使用代理

如果需要使用代理服务:

OPENAI_BASE_URL=https://your-proxy-domain.com/v1

通义千问(Qwen)

获取 API Key

  1. 访问 阿里云百炼平台
  2. 开通模型服务
  3. 创建 API Key

配置

AI_PROVIDER=qwen
QWEN_API_KEY=sk-xxxxxxxxxxxxxxxx
QWEN_MODEL=qwen-plus

可用模型

  • qwen-turbo: 通用模型,速度快
  • qwen-plus: 增强模型,效果更好
  • qwen-max: 旗舰模型,最强性能

文心一言(Wenxin)

获取 API Key

  1. 访问 百度智能云
  2. 开通千帆大模型服务
  3. 创建应用获取 API Key 和 Secret Key

配置

AI_PROVIDER=wenxin
WENXIN_API_KEY=xxxxxxxxxxxxxxxx
WENXIN_SECRET_KEY=xxxxxxxxxxxxxxxx
WENXIN_MODEL=ernie-bot

可用模型

  • ernie-bot: ERNIE-Bot
  • ernie-bot-turbo: ERNIE-Bot-turbo
  • ernie-bot-4: ERNIE-Bot 4.0

Gemini

获取 API Key

  1. 访问 Google AI Studio
  2. 创建 API Key

配置

AI_PROVIDER=gemini
GEMINI_API_KEY=xxxxxxxxxxxxxxxx
GEMINI_MODEL=gemini-pro

可用模型

  • gemini-pro: 文本生成模型
  • gemini-pro-vision: 多模态模型

Claude

获取 API Key

  1. 访问 Anthropic Console
  2. 创建 API Key

配置

AI_PROVIDER=claude
CLAUDE_API_KEY=sk-ant-xxxxxxxxxxxxxxxx
CLAUDE_MODEL=claude-3-sonnet-20240229

可用模型

  • claude-3-opus-20240229: 最强模型
  • claude-3-sonnet-20240229: 平衡模型
  • claude-3-haiku-20240307: 快速模型

多服务商配置

支持配置多个服务商,在使用时选择:

// config/ai.php
return [
    'default' => 'openai',

    'providers' => [
        'openai' => [
            'api_key' => env('OPENAI_API_KEY'),
            'base_url' => env('OPENAI_BASE_URL', 'https://api.openai.com/v1'),
            'model' => env('OPENAI_MODEL', 'gpt-3.5-turbo'),
        ],

        'qwen' => [
            'api_key' => env('QWEN_API_KEY'),
            'model' => env('QWEN_MODEL', 'qwen-plus'),
        ],

        'wenxin' => [
            'api_key' => env('WENXIN_API_KEY'),
            'secret_key' => env('WENXIN_SECRET_KEY'),
            'model' => env('WENXIN_MODEL', 'ernie-bot'),
        ],
    ],
];

使用示例

后台选择服务商

在文章编辑页面:

  1. 点击 "AI 生成" 按钮
  2. 选择服务商
  3. 选择模型
  4. 输入提示词
  5. 生成内容

代码调用

use app\service\AIService;

$ai = new AIService('openai');
$content = $ai->generate([
    'prompt' => '写一篇关于人工智能的文章',
    'max_tokens' => 2000,
]);

切换服务商

// 使用通义千问
$ai = new AIService('qwen');
$content = $ai->generate(['prompt' => '...']);

// 使用文心一言
$ai = new AIService('wenxin');
$content = $ai->generate(['prompt' => '...']);

高级配置

请求参数

$content = $ai->generate([
    'prompt' => '提示词',
    'max_tokens' => 2000,       // 最大生成长度
    'temperature' => 0.7,       // 创造性(0-1)
    'top_p' => 0.9,            // 采样阈值
    'frequency_penalty' => 0,   // 频率惩罚
    'presence_penalty' => 0,    // 存在惩罚
]);

超时设置

'timeout' => 60,  // 请求超时时间(秒)
'retry' => 3,     // 失败重试次数

日志记录

启用 AI 请求日志:

'log_enabled' => true,
'log_level' => 'info',

费用管理

监控用量

后台 系统管理 → AI 用量统计 查看:

  • 总请求次数
  • Token 使用量
  • 预估费用

设置限额

'quota' => [
    'daily_requests' => 1000,    // 每日请求限制
    'monthly_tokens' => 1000000, // 每月 Token 限制
],

费用告警

'alert' => [
    'enabled' => true,
    'threshold' => 100,  // 告警阈值(元)
    'emails' => ['admin@example.com'],
],

最佳实践

安全建议

  • 不要在代码中硬编码 API Key
  • 定期轮换 API Key
  • 使用环境变量管理密钥
  • 限制 API Key 权限

性能优化

  • 合理设置 max_tokens 避免浪费
  • 使用缓存减少重复请求
  • 选择合适的模型平衡性能和成本

容错处理

try {
    $content = $ai->generate(['prompt' => '...']);
} catch (AIException $e) {
    Log::error('AI 生成失败', [
        'provider' => 'openai',
        'error' => $e->getMessage(),
    ]);

    // 降级处理
    return '内容生成失败,请稍后重试';
}

故障排查

API Key 无效

检查:

  1. Key 是否正确复制
  2. Key 是否已激活
  3. 账户是否有余额

请求超时

解决方案:

  1. 增加超时时间
  2. 使用更稳定的网络
  3. 切换到其他服务商

配额超限

解决方案:

  1. 升级服务套餐
  2. 优化提示词减少 Token 消耗
  3. 启用请求限流

相关资源

  • AI 模型配置
  • 提示词工程
  • AI 生成功能
在 GitHub 上编辑此页
Next
AI 模型配置