DeepSeek API设置
- 未分类
- 2025-09-01 14:22:45
- 12阅读
deepseek AI模型免费使用,API调用集成
获取DeepSeek API密钥
要开始免费使用DeepSeek AI模型,首先需要获取API密钥。访问DeepSeek官方网站(deepseek.ai),注册账户并登录。在用户控制面板中,导航到“API密钥”部分。点击“生成新密钥”,系统会自动创建一个唯一的API密钥。免费用户通常享有每月10,000次API调用额度,具体以官方文档为准。复制此密钥并妥善保存,避免泄露。警告:不要在公共代码库或客户端代码中硬编码API密钥,使用环境变量存储以增强安全性。
设置API调用环境
在本地开发环境中配置必要的工具和库。推荐使用Python 3.8或更高版本,因为DeepSeek官方API文档支持Python。安装requests库以处理HTTP请求。在终端执行以下命令:
pip install requests
创建一个新项目目录,并添加一个.env文件存储API密钥。在.env文件中添加:
DEEPSEEK_API_KEY=your_api_key_here
使用python-dotenv库加载环境变量。安装命令:
pip install python-dotenv
在Python脚本中初始化环境:
import os
from dotenv import load_dotenv
load_dotenv()
api_key = os.getenv("DEEPSEEK_API_KEY")
if not api_key:
raise ValueError("API密钥未设置,请检查.env文件")
确保网络连接稳定,DeepSeek API端点为https://api.deepseek.ai/v1/chat/completions。免费额度调用时,响应时间通常在1-3秒内,具体取决于服务器负载。
编写API调用代码
编写Python代码调用DeepSeek API进行文本生成。以下示例展示如何发送请求并处理响应。核心参数包括模型名称(如deepseek-chat)、提示词和温度设置(控制输出随机性)。免费用户默认使用deepseek-chat模型,最大输入长度为4096 tokens。
import requests
import json
url = "https://api.deepseek.ai/v1/chat/completions"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
data = {
"model": "deepseek-chat",
"messages": [
{"role": "user", "content": "解释量子计算的基本原理"}
],
"temperature": 0.7,
"max_tokens": 500
}
response = requests.post(url, headers=headers, data=json.dumps(data))
if response.status_code == 200:
result = response.json()
print("生成的文本:", result["choices"][0]["message"]["content"])
else:
print("错误:", response.status_code, response.text)
关键步骤解释:
- headers设置包含Bearer认证,确保API密钥有效。
- data字典中,model指定为deepseek-chat,messages数组包含用户输入。
- temperature参数设为0.7以平衡创造性和准确性。
- max_tokens限制输出长度,避免超出免费额度。
警告:频繁调用可能导致速率限制(如每分钟100次请求),添加错误处理重试机制。
处理API响应
DeepSeek API返回JSON格式响应,包含生成文本、使用token数和模型信息。免费调用中,响应结构如下:
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1677652288,
"model": "deepseek-chat",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "量子计算利用量子比特和叠加态..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 20,
"completion_tokens": 50,
"total_tokens": 70
}
}
解析响应代码:
if response.status_code == 200:
result = response.json()
content = result["choices"][0]["message"]["content"]
prompt_tokens = result["usage"]["prompt_tokens"]
completion_tokens = result["usage"]["completion_tokens"]
total_tokens = result["usage"]["total_tokens"]
print(f"生成内容: {content}")
print(f"使用token数: 输入={prompt_tokens}, 输出={completion_tokens}, 总计={total_tokens}")
检查免费额度剩余
if total_tokens > 10000: 假设免费额度为10,000 tokens/月
print("警告:接近免费额度上限")
注意事项:
- finish_reason为"stop"表示正常完成,"length"表示输出被截断。
- usage字段监控token消耗,免费额度按月重置。
- 对于长文本,分批处理以避免超时。
常见问题与解决
在集成过程中,可能遇到以下问题。基于官方文档和社区反馈,提供解决方案。
API密钥无效错误
错误信息:{"error": {"message": "Invalid API key", "type": "invalid_request_error"}}
原因:API密钥错误或过期。
解决:
1. 验证.env文件中密钥是否正确复制。
2. 在DeepSeek控制面板重新生成密钥。
3. 检查网络请求是否使用HTTPS。
代码验证示例:
if response.status_code == 401:
print("API密钥无效,请检查或重新生成")
速率限制超出
错误信息:{"error": {"message": "Rate limit exceeded", "type": "rate_limit_error"}}
原因:调用频率过高。
解决:
1. 添加延迟控制,使用time.sleep。
2. 实现指数退避重试。
代码示例:
import time
from requests.exceptions import RequestException
def call_api_with_retry(url, headers, data, max_retries=3):
for attempt in range(max_retries):
try:
response = requests.post(url, headers=headers, data=json.dumps(data))
if response.status_code == 429: 速率限制错误
wait_time = 2 attempt 指数退避
print(f"速率限制,等待{wait_time}秒后重试")
time.sleep(wait_time)
continue
return response
except RequestException as e:
print(f"请求失败: {e}")
if attempt == max_retries - 1:
raise
time.sleep(1)
return None
警告:免费用户速率限制为每分钟100次请求,超出后需等待。
模型响应慢或超时
原因:服务器负载高或网络延迟。
解决:
1. 设置请求超时参数。
2. 优化提示词长度。
代码调整:
response = requests.post(url, headers=headers, data=json.dumps(data), timeout=10) 10秒超时
官方建议:免费调用时,避免高峰期(如UTC 14:00-18:00)。
集成到WordPress插件
将DeepSeek API集成到WordPress插件,实现AI内容生成。使用WordPress REST API和PHP处理请求。以下步骤基于官方WordPress文档。
创建插件基础结构
在wp-content/plugins目录创建新文件夹deepseek-integrator。添加主文件deepseek-integrator.php:
";
}
此代码创建WordPress设置页,用于存储API密钥。
实现API调用函数
在插件中添加PHP函数调用DeepSeek API:
function deepseek_generate_content($prompt) {
$api_key = get_option('deepseek_api_key');
if (empty($api_key)) {
return "错误:API密钥未设置";
}
$url = 'https://api.deepseek.ai/v1/chat/completions';
$headers = [
'Authorization: Bearer ' . $api_key,
'Content-Type: application/json'
];
$data = [
'model' => 'deepseek-chat',
'messages' => [
['role' => 'user', 'content' => $prompt]
],
'temperature' => 0.7,
'max_tokens' => 500
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($http_code == 200) {
$result = json_decode($response, true);
return $result['choices'][0]['message']['content'];
} else {
return "错误:API调用失败,状态码" . $http_code;
}
}
此函数发送请求并返回生成内容。免费调用时,监控token使用量。
添加前端界面
在WordPress文章编辑器中添加按钮触发内容生成。使用JavaScript和AJAX:
// 在插件中添加JS
function deepseek_enqueue_scripts() {
wp_enqueue_script('deepseek-script', plugin_dir_url(__FILE__) . 'js/deepseek.js', array('jquery'), '1.0', true);
wp_localize_script('deepseek-script', 'deepseek_ajax', array(
'ajax_url' => admin_url('admin-ajax.php'),
'nonce' => wp_create_nonce('deepseek_nonce')
));
}
add_action('admin_enqueue_scripts', 'deepseek_enqueue_scripts');
// AJAX处理
function deepseek_ajax_handler() {
check_ajax_referer('deepseek_nonce', 'nonce');
$prompt = sanitize_text_field($_POST['prompt']);
$content = deepseek_generate_content($prompt);
echo $content;
wp_die();
}
add_action('wp_ajax_deepseek_generate', 'deepseek_ajax_handler');
// JS文件 (js/deepseek.js)
jQuery(document).ready(function($) {
$('generate-content').click(function() {
var prompt = $('content-prompt').val();
$.ajax({
type: 'POST',
url: deepseek_ajax.ajax_url,
data: {
action: 'deepseek_generate',
prompt: prompt,
nonce: deepseek_ajax.nonce
},
success: function(response) {
$('generated-content').(response);
},
error: function() {
alert('生成失败');
}
});
});
});
在设置页添加输入框和按钮:
// 在deepseek_settings_page函数中添加
echo '内容生成
';
echo '';
echo '';
echo '';
此集成允许用户在WordPress后台免费生成内容,基于DeepSeek API。警告:免费额度共享,避免多用户并发调用。
性能优化建议
免费使用DeepSeek API时,优化调用效率以最大化额度利用。基于官方最佳实践:
缓存响应
对于重复提示词,缓存API响应减少调用。使用WordPress transient API:
function deepseek_generate_content_cached($prompt) {
$cache_key = 'deepseek_' . md5($prompt);
$cached_content = get_transient($cache_key);
if ($cached_content !== false) {
return $cached_content;
}
$content = deepseek_generate_content($prompt);
set_transient($cache_key, $content, HOUR_IN_SECONDS); // 缓存1小时
return $content;
}
缓存时间设为1小时,避免重复请求。
批量处理
合并多个提示词为单次调用,减少API请求次数。示例:
prompts = ["主题1", "主题2", "主题3"]
combined_prompt = "生成以下内容:n" + "n".join([f"{i+1}. {p}" for i, p in enumerate(prompts)])
data["messages"][0]["content"] = combined_prompt
响应后解析分割内容。免费额度下,批量处理可节省50%以上token。
监控与日志
记录API调用状态和token使用。在WordPress中添加日志:
function deepseek_log_usage($prompt, $tokens) {
$log_entry = date('Y-m-d H:i:s') . " - 提示词: $prompt, Tokens: $tokensn";
file_put_contents(WP_CONTENT_DIR . '/deepseek.log', $log_entry, FILE_APPEND);
}
// 在deepseek_generate_content函数中调用
if ($http_code == 200) {
$result = json_decode($response, true);
$tokens = $result['usage']['total_tokens'];
deepseek_log_usage($prompt, $tokens);
}
日志文件位于wp-content/deepseek.log,定期检查免费额度使用情况。