当前位置: 首页 > news >正文

php调用deepseek 接口示例

 

<?php
class DeepSeekClient {private $apiKey;private $apiUrl = 'https://api.deepseek.com/chat/completions';private $model = 'deepseek-chat';public function __construct($apiKey) {$this->apiKey = $apiKey;}/*** 发送普通请求*/public function chat($messages, $options = []) {$defaultOptions = ['max_tokens' => 1000,'temperature' => 0.7,'stream' => false];$options = array_merge($defaultOptions, $options);$data = ['model' => $this->model,'messages' => $messages] + $options;$ch = curl_init($this->apiUrl);curl_setopt_array($ch, [CURLOPT_RETURNTRANSFER => true,CURLOPT_POST => true,CURLOPT_POSTFIELDS => json_encode($data),CURLOPT_HTTPHEADER => ['Content-Type: application/json','Authorization: Bearer ' . $this->apiKey,'Accept: application/json'],CURLOPT_TIMEOUT => 60,CURLOPT_SSL_VERIFYPEER => false, // 禁用 SSL 验证CURLOPT_SSL_VERIFYHOST => 0,     // 禁用主机名验证
        ]);$response = curl_exec($ch);$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);if (curl_errno($ch)) {throw new Exception('cURL 错误: ' . curl_error($ch));}curl_close($ch);if ($httpCode != 200) {throw new Exception('API 请求失败,HTTP 代码: ' . $httpCode . ' 响应: ' . $response);}return json_decode($response, true);}/*** 流式聊天*/public function streamChat($messages, $callback, $options = []) {$defaultOptions = ['max_tokens' => 1000,'temperature' => 0.7,'stream' => true];$options = array_merge($defaultOptions, $options);$data = ['model' => $this->model,'messages' => $messages] + $options;$ch = curl_init();curl_setopt_array($ch, [CURLOPT_URL => $this->apiUrl,CURLOPT_RETURNTRANSFER => true,CURLOPT_POST => true,CURLOPT_POSTFIELDS => json_encode($data),CURLOPT_HTTPHEADER => ['Content-Type: application/json','Authorization: Bearer ' . $this->apiKey,'Accept: text/event-stream'],CURLOPT_WRITEFUNCTION => function($ch, $data) use ($callback) {$lines = explode("\n", $data);foreach ($lines as $line) {if (strpos($line, 'data: ') === 0) {$jsonStr = substr($line, 6);if ($jsonStr === '[DONE]') {$callback('', true); // 传输完成} else if (!empty(trim($jsonStr))) {$json = json_decode($jsonStr, true);if (isset($json['choices'][0]['delta']['content'])) {$callback($json['choices'][0]['delta']['content'], false);}}}}return strlen($data);}]);curl_exec($ch);if (curl_errno($ch)) {throw new Exception('cURL 错误: ' . curl_error($ch));}curl_close($ch);}
}// 使用示例
try {$apiKey = 'sk-********';$client = new DeepSeekClient($apiKey);// 普通聊天$messages = [['role' => 'system', 'content' => '你是一个中文助手'],['role' => 'user', 'content' => '请用中文介绍一下你自己']];$response = $client->chat($messages);echo "回答: " . $response['choices'][0]['message']['content'] . PHP_EOL;// 流式聊天echo "流式响应: ";$client->streamChat($messages, function($content, $done) {if (!$done) {echo $content;flush();} else {echo PHP_EOL . "--- 结束 ---" . PHP_EOL;}});} catch (Exception $e) {echo "错误: " . $e->getMessage() . PHP_EOL;
}
?>

 

http://www.jsqmd.com/news/294008/

相关文章:

  • 运算符:4.关系运算符
  • 默纳克刷机,默纳克刷协议,默纳克显示板 外呼板协议更改 烧录 默纳克各种软件各种刷机
  • Matlab/Cplex代码:两级电力市场环境下计及风险的省间交易商最优购电模型
  • 直接看代码最实在。先来搞个简单的BP神经网络结构
  • 基于SVPWM调制的三相T型三电平并网逆变器Simulink模型
  • PLC电路在备用自动投入中 的研究
  • 基于LSTM神经网络的短期风速预测实现方案
  • JX085_Z30130X31型钻床控制系统的PLC改造
  • 2026年探寻北方地区企业展厅设计公司排名,哪家比较靠谱?
  • 盘点2026年资质齐全的装修企业,欢乐佳园装饰靠谱又专业!
  • 2026年靠谱的淘宝代运营公司推荐,帮你解决电商运营难题
  • 2026年郑州实力强的厨师培训学校排名,帮你选到靠谱的!
  • 2026年浙江杭州热门新媒体培训公司排名:杭州沐林服务专业吗?
  • Flutter for OpenHarmony 中的模块化 UI 构建:从函数拆分到主题一致性实践
  • 图的欧拉道路和欧拉回路
  • 构建面向 OpenHarmony 的 Flutter 响应式架构
  • 使用Docker Compose搭建LibreNMS网络监控系统
  • 从零到一:我的网络安全入门规划(网络/Web/系统安全方向详解)
  • 【万字解析】网络安全是什么?学完能拿多少?保姆级学习路线+避坑指南
  • 分析北京学校家具生产企业,北京饰界华丰教育科技有限公司性价比如何?
  • 闲置沃尔玛购物卡别放着!不花心思打理真的会亏,快来回收处理吧
  • 2026古筝新手攻略:入门级古筝全面评测推荐,瑶鸾古筝Y106系列/瑶鸾古筝Y103系列(星辰),古筝实力厂家口碑推荐
  • AI绘画2024年趋势分析:NewBie-image-Exp0.1开源模型+弹性GPU部署
  • 企业展厅设计公司哪家好,盛世笔特的全流程服务值得选吗
  • 批量处理太慢?Live Avatar高效生成脚本分享
  • 昆明售后完善的装修公司怎么选?欢乐佳园是靠谱之选
  • multisim14.3下载安装:新手入门必看的完整指南
  • 2026年佛山、广州等地信誉好的抖店代运营公司推荐排名
  • 2026年重庆热门人造雾设备公司排名,锦胜雾森公司概况靠谱规模大!
  • 2026年叔丁醇钾供应企业,叔丁醇钾哪家好?