WordPress 内容生成插件 DeepSeek AI 模型 API 集成调用开发实践
- Linkreate AI插件 文章
- 2025-09-01 15:40:31
- 20阅读
获取 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 |