PHP对接Deepseek API接口完整代码,参数说明
使用官方PHP SDK
DeepSeek官方推荐社区驱动的PHP SDK,包名为 deepseek-php/deepseek-php-client。
安装与初始化
composer require deepseek-php/deepseek-php-clientuse DeepSeek\DeepSeekClient;
$client = DeepSeekClient::build('your-api-key');注意:需要PHP 8.1+,API Key从DeepSeek平台获取并确保账户有余额。
基础请求
$response = DeepSeekClient::build('your-api-key')
->query('用简单的话解释什么是量子计算')
->run();
echo $response;默认参数:
| 参数 | 默认值 |
|---|---|
| Model | API默认(不传model字段) |
| Temperature | 1.3 |
| Max Tokens | 4096 |
| Response Format | text |
| Timeout | 30秒 |
高级配置示例
use DeepSeek\DeepSeekClient;
use DeepSeek\Enums\Models;
$client = DeepSeekClient::build(
apiKey: 'your-api-key',
baseUrl: 'https://api.deepseek.com',
timeout: 30,
clientType: 'guzzle' // 或 'symfony'
);
$response = $client
->withModel(Models::V4_PRO->value) // 最新V4模型
->withStream() // 启用流式响应
->setTemperature(1.2) // 0-2之间,控制随机性
->setMaxTokens(8192) // 最大输出token数
->setResponseFormat('text') // 或 'json_object'
->query('你是专业的编程助手')
->query('用PHP实现一个快速排序函数', 'user')
->run();
echo 'API响应: ' . $response;获取模型列表
$models = DeepSeekClient::build('your-api-key')->getModelsList();参数详解
客户端初始化参数
DeepSeekClient::build() 参数:
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
apiKey | string | ✅ | - | DeepSeek API密钥 |
baseUrl | string | ❌ | https://api.deepseek.com | API基础URL |
timeout | int | ❌ | 30 | 请求超时秒数 |
clientType | string | ❌ | 'guzzle' | HTTP客户端(guzzle/symfony) |
请求配置方法(链式调用)
| 方法 | 参数 | 说明 |
|---|---|---|
query(string $content, ?string $role = 'user') | 消息内容、角色 | 添加对话消息(可多次调用) |
withModel(string $model) | 模型ID | 指定AI模型 |
withStream(bool $stream = true) | 是否流式 | 启用流式响应 |
setTemperature(float $temperature) | 0-2数值 | 控制随机性:低值→确定,高值→创意 |
setMaxTokens(int $maxTokens) | token数 | 最大输出长度 |
setResponseFormat(string $format) | 'text' 或 'json_object' | 响应格式 |
模型选择
最新V4模型:
| 模型常量 | 说明 |
|---|---|
Models::V4_PRO->value | 旗舰版1.6T/49B激活参数,最大384K输出 |
Models::V4_FLASH->value | 快速版284B/13B激活参数,经济高效 |
⚠️ deepseek-chat和deepseek-reasoner别名将于2026-07-24停用,请迁移至V4模型。
JSON模式特别说明
使用setResponseFormat('json_object')时,提示词必须包含"json"字样,否则API会拒绝请求:
// ❌ 错误
->setResponseFormat('json_object')
->query('解释量子计算')
// ✅ 正确
->setResponseFormat('json_object')
->query('请以JSON格式回答。解释量子计算的基本概念,包含"summary"和"key_points"字段')原生cURL方式(备选)
如果不使用SDK,可用原生cURL直接调用:
function callDeepSeekApi($userMessage = '') {
$apiKey = 'your-api-key';
$url = 'https://api.deepseek.com/chat/completions';
$headers = [
'Content-Type: application/json',
'Authorization: Bearer ' . $apiKey
];
$data = [
'model' => 'deepseek-chat',
'messages' => [
['role' => 'user', 'content' => $userMessage]
],
'temperature' => 1.3,
'max_tokens' => 4096
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
if (curl_errno($ch)) {
throw new Exception('Curl error: ' . curl_error($ch));
}
curl_close($ch);
return json_decode($response, true);
}
$result = callDeepSeekApi('你好');
echo $result['choices'][0]['message']['content'] ?? '无响应';响应结构
[
'id' => 'chatcmpl-xxx',
'object' => 'chat.completion',
'created' => 1735810490,
'model' => 'deepseek-chat',
'choices' => [
[
'index' => 0,
'message' => [
'role' => 'assistant',
'content' => '响应内容...'
],
'finish_reason' => 'stop'
]
],
'usage' => [
'prompt_tokens' => 9,
'completion_tokens' => 11,
'total_tokens' => 20
]
]
本文标题:PHP对接Deepseek API接口完整代码,参数说明
本文链接:https://www.befun.ink/20307.html
声明:本站信息原创或由互联网收集,未用于商业用途,如若侵权,请联系站长删除!

相关文章