PHP对接Deepseek API接口完整代码,参数说明

编程开发 阅读(7) 21小时前 发布 扫码查看网页

使用官方PHP SDK

DeepSeek官方推荐社区驱动的PHP SDK,包名为 deepseek-php/deepseek-php-client

安装与初始化

composer require deepseek-php/deepseek-php-client
use DeepSeek\DeepSeekClient;

$client = DeepSeekClient::build('your-api-key');
注意:需要PHP 8.1+,API Key从DeepSeek平台获取并确保账户有余额。

基础请求

$response = DeepSeekClient::build('your-api-key')
    ->query('用简单的话解释什么是量子计算')
    ->run();

echo $response;

默认参数

参数默认值
ModelAPI默认(不传model字段)
Temperature1.3
Max Tokens4096
Response Formattext
Timeout30秒

高级配置示例

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() 参数:

参数类型必填默认值说明
apiKeystring-DeepSeek API密钥
baseUrlstringhttps://api.deepseek.comAPI基础URL
timeoutint30请求超时秒数
clientTypestring'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
声明:本站信息原创或由互联网收集,未用于商业用途,如若侵权,请联系站长删除!