WordPress 内容生成插件 DeepSeek AI 模型 API 集成调用开发实践

获取 DeepSeek API 密钥

注册 DeepSeek 账户

你需要先访问 DeepSeek 官方网站创建账户。进入注册页面后,填写邮箱和密码,完成邮箱验证。登录后,导航到开发者控制台。确保账户已启用 API 访问权限,这通常需要通过身份验证步骤。DeepSeek 官方文档强调,账户激活后才能生成 API 密钥,否则调用会失败。

生成 API 密钥

在开发者控制台中,找到“API Keys”部分。点击“Create New Key”按钮,系统会生成一个唯一的密钥字符串。复制此密钥并安全存储,DeepSeek 文档警告不要泄露密钥,否则可能导致未授权访问。密钥格式通常以“sk-”开头,长度为 32 字符。如果密钥丢失,需重新生成,旧密钥将失效。

WordPress 插件开发基础

创建自定义插件

在 WordPress 站点的 wp-content/plugins 目录下,新建一个文件夹,命名为“deepseek-content-generator”。在此文件夹中创建主 PHP 文件,例如“deepseek-content-generator.php”。文件开头必须包含插件头注释,定义名称、版本和描述。基于 WordPress 官方插件开发指南,头注释示例:


/
  Plugin Name: DeepSeek Content Generator
  Version: 1.0
  Description: Integrates DeepSeek AI model for content generation via API calls.
 /

保存文件后,在 WordPress 后台的插件页面激活此插件。确保插件目录权限设置为 755,避免服务器访问错误。

设置插件结构

插件结构应包括核心功能文件和资源文件夹。创建一个“includes”子目录存放 PHP 类文件,例如“api-handler.php”处理 API 逻辑。主文件中,使用 WordPress 钩子初始化功能:


add_action('plugins_loaded', 'deepseek_init_plugin');
function deepseek_init_plugin() {
    require_once plugin_dir_path(__FILE__) . 'includes/api-handler.php';
}

根据 WordPress 编码标准,所有函数和类应使用唯一前缀(如“deepseek_”)以避免冲突。测试插件激活后,检查错误日志确保无 PHP 致命错误。

集成 DeepSeek API 调用

使用 WordPress HTTP API

WordPress 提供 wp_remote_post() 函数发送 HTTP 请求。在“api-handler.php”中,创建函数处理 API 调用:


function deepseek_call_api($prompt) {
    $api_key = get_option('deepseek_api_key'); // 从数据库获取密钥
    $url = 'https://api.deepseek.com/v1/chat/completions'; // DeepSeek 官方端点
    $data = array(
        'model' => 'deepseek-chat',
        'messages' => array(
            array('role' => 'user', 'content' => $prompt)
        ),
        'max_tokens' => 500,
        'temperature' => 0.7
    );
    $response = wp_remote_post($url, array(
        'headers' => array(
            'Authorization' => 'Bearer ' . $api_key,
            'Content-Type' => 'application/json'
        ),
        'body' => json_encode($data),
        'timeout' => 15
    ));
    return $response;
}

DeepSeek API 文档指定端点为“https://api.deepseek.com/v1/chat/completions”,模型参数如“max_tokens”和“temperature”需根据需求调整。WordPress HTTP API 自动处理 SSL 验证,但确保服务器支持 cURL 或 streams。

处理 API 响应

API 返回 JSON 格式响应,需解析并提取生成内容。在函数中添加错误处理:


function deepseek_generate_content($prompt) {
    $response = deepseek_call_api($prompt);
    if (is_wp_error($response)) {
        return 'API 请求失败: ' . $response->get_error_message();
    }
    $body = wp_remote_retrieve_body($response);
    $data = json_decode($body, true);
    if (json_last_error() !== JSON_ERROR_NONE) {
        return 'JSON 解析错误';
    }
    if (isset($data['choices'][0]['message']['content'])) {
        return $data['choices'][0]['message']['content'];
    } else {
        return '内容生成失败: ' . ($data['error']['message'] ?? '未知错误');
    }
}

DeepSeek 响应结构中,“choices[0].message.content”包含生成文本。错误处理需检查 HTTP 状态码和 JSON 错误字段,如“error.message”。WordPress 官方文档建议使用 wp_remote_retrieve_response_code() 获取状态码,非 200 状态表示请求问题。

实现内容生成功能

构建请求参数

参数构建需优化提示词以提升内容质量。在插件中添加设置页面,允许用户自定义提示词模板:


add_action('admin_menu', 'deepseek_add_admin_menu');
function deepseek_add_admin_menu() {
    add_options_page('DeepSeek 设置', 'DeepSeek', 'manage_options', 'deepseek-settings', 'deepseek_settings_page');
}
function deepseek_settings_page() {
    ?>
    

DeepSeek API 设置

<?php }

提示词模板应包含占位符,如“{keyword}”,用于动态替换。DeepSeek 官方提示词工程指南建议使用清晰指令,例如“生成关于 {keyword} 的 SEO 优化文章”。保存设置后,在生成函数中替换占位符:


$template = get_option('deepseek_prompt_template', '生成关于 {keyword} 的内容');
$prompt = str_replace('{keyword}', $keyword, $template);
$content = deepseek_generate_content($prompt);

避免在提示词中包含敏感信息,DeepSeek 文档警告这可能触发安全过滤。

错误处理

错误处理需覆盖网络超时、API 限流和无效响应。在调用函数中添加重试机制:


function deepseek_generate_content_with_retry($prompt, $max_retries = 3) {
    $attempt = 0;
    while ($attempt < $max_retries) {
        $content = deepseek_generate_content($prompt);
        if (strpos($content, 'API 请求失败') === false && strpos($content, '内容生成失败') === false) {
            return $content;
        }
        $attempt++;
        sleep(2); // 延迟重试
    }
    return '重试次数超限,请检查 API 设置';
}

DeepSeek API 限流策略基于每分钟请求数,官方文档建议设置请求间隔。WordPress 错误日志应记录详细错误,使用 error_log() 函数存储到文件。对于用户界面,显示友好错误消息而非技术细节。

测试与优化

单元测试

使用 PHPUnit 测试插件功能。在插件目录创建“tests”文件夹,编写测试用例:


class DeepSeekAPITest extends WP_UnitTestCase {
    public function test_api_call() {
        $prompt = '测试提示词';
        $response = deepseek_call_api($prompt);
        $this->assertNotWPError($response);
        $body = wp_remote_retrieve_body($response);
        $data = json_decode($body, true);
        $this->assertArrayHasKey('choices', $data);
    }
}

运行测试前,确保 WordPress 测试环境配置正确。DeepSeek 官方测试沙箱提供模拟端点,避免消耗实际配额。测试覆盖正常响应、错误响应和边界条件,如空提示词。

性能优化

优化 API 调用以减少延迟。使用 WordPress 缓存 API 存储生成内容:


function deepseek_get_cached_content($prompt) {
    $cache_key = md5($prompt);
    $cached_content = get_transient('deepseek_content_' . $cache_key);
    if ($cached_content !== false) {
        return $cached_content;
    }
    $content = deepseek_generate_content_with_retry($prompt);
    set_transient('deepseek_content_' . $cache_key, $content, HOUR_IN_SECONDS);
    return $content;
}

缓存时间设置为 1 小时,避免重复调用。DeepSeek API 响应时间通常在 1-3 秒,优化后可降至毫秒级。监控服务器资源使用,确保 API 调用不会导致 CPU 或内存过载。WordPress 性能分析工具如 Query Monitor 可检测瓶颈。

优化措施 预期效果 实施方法
缓存 API 响应 减少 70% 请求 使用 WordPress Transients API
异步处理 提升用户体验 集成 WP Cron 任务
参数调优 降低响应时间 调整 max_tokens 和 temperature