php 对接deepseek

简单的对接deepseek

php 复制代码
   public function callDeepSeekApi($userMessage = ''): string
    {

        $apiKey = '你申请的api';
        $url = 'https://api.deepseek.com/chat/completions';
        $headers = [
            'Content-Type: application/json',
            'Accept: application/json',
            'Authorization: Bearer ' . $apiKey
        ];
        $data = [
            'model' => 'deepseek-chat', //deepseek-reasoner 切换推理模型 R1
            'messages' => [
                [
                    'role' => 'system',
                    'content' => 'You are a helpful assistant.'
                ],
                [
                    'role' => 'user',
                    'content' => $userMessage
                ]
            ],
            'stream' => false, //false 非流  true//流返回,需要前端追加和保持长连接
            "frequency_penalty"=>0,
            'response_format'=>[
                'type'=>'text' //返回格式(text,json_object)
            ],
            "max_tokens"=>2048, //最大返回token数
            "presence_penalty"=> 0,
            "stop"=>null,
            "stream_options"=> null,
            "temperature"=> 1,
            "top_p"=>1,
            "tools"=> null,
            "tool_choice"=>"none",
            "logprobs"=> false,
            "top_logprobs"=>null
        ];
        $dataString = json_encode($data);

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
        curl_setopt($ch, CURLOPT_POSTFIELDS, $dataString);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER,  true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

        $response = curl_exec($ch);
        $errorCode = curl_errno($ch);
        if (!$errorCode) {
            $errorMessage = curl_error($ch);
            echo 'Curl error: ' . $errorCode . ' - ' . $errorMessage . PHP_EOL;
        }
        return $response;
    }

调用示例 $data =callDeepSeekApi('今天吃什么呢');

php 复制代码
array:7 [▼ // app\Http\ApiControllers\V1\TestController.php:51
  "id" => "e5769755-e6bc-4065-a69b-6a113f554b88"
  "object" => "chat.completion"
  "created" => 1755059170
  "model" => "deepseek-reasoner"
  "choices" => array:1 [▼
    0 => array:4 [▼
      "index" => 0
      "message" => array:3 [▼
        "role" => "assistant"
        "content" => """
          哈哈,每天最幸福的烦恼来了!🤔 帮你整理几个思路,选个最合心意的吧:

          

          ### 🍚 **懒人家常版**(冰箱有啥做啥)

          - **番茄炒蛋 + 米饭**(国民下饭菜!)

          - **葱油拌面**(10分钟搞定,香到流泪)

          - **速冻饺子/云吞**(加点紫菜虾皮变高汤版)

          - **白粥配酱菜/咸鸭蛋**(肠胃友好选择)

          

          ### 🌶️ **开胃解馋版**(适合想刺激味蕾)

          - **酸辣土豆丝 + 麻婆豆腐**(米饭杀手组合)

          - **韩式泡菜锅**(冰箱边角料一锅煮)

          - **咖喱鸡饭**(浓郁汤汁拌饭绝了)

          - **凉皮/酸辣粉**(外卖30分钟拯救食欲)

          

          ### 🥗 **清爽健康版**(身体无负担)

          - **虾仁蔬菜沙拉**(油醋汁+牛油果加分)

          - **菌菇豆腐汤 + 蒸红薯**(暖胃低卡)

          - **藜麦鸡胸肉bowl**(西兰花/玉米/小番茄)

          - **清蒸鱼 + 白灼菜心**(优质蛋白get)

          

          ### ⏱️ **终极省事版**

          - **打开外卖APP → 定位附近 → 按评分排序**  

          - **翻昨天剩菜**(环保战士光荣!♻️)

          

          **小建议:** 看看窗外天气!☀️大热天适合凉面/冷面,❄️冷飕飕就选火锅/汤面~  

          或者...试试闭眼随机点外卖,给生活来点惊喜? 😂  

          

          **快告诉我你的偏好!** (想吃辣/忌口/做饭时间...)帮你缩小范围~
          """
        "reasoning_content" => """
          嗯,用户问了一个日常但很实际的问题------"今天吃什么呢"。这可能是午餐或晚餐的纠结时刻,用户或许正饿着肚子滑动手机,也可能在超市货架前发呆。  

          

          从简单回复角度看,直接甩菜谱也行,但用户没给任何偏好或限制(比如厨房条件、忌口、时间),所以需要引导ta提供更多信息。不过,如果用户只是随意一问,太复杂的提问反而会增加负担。  

          

          先给几个轻松选项吧:  

          - 家常菜最稳妥(番茄炒蛋、麻婆豆腐),谁都能做;  

          - 如果用户想解馋,推荐酸辣粉或咖喱这类味道鲜明的;  

          - 天气热的话凉面更合适,顺便提一句"清热解暑"可能更贴心;  

          - 最后加个彩蛋选项(螺蛳粉),万一用户想挑战味蕾呢?  

          

          用表情符号调节语气,避免显得说教。结尾抛个互动提问(偏好/忌口),既收集信息又带点闲聊感------毕竟"吃什么"本质是带烟火气的话题呀。
          """
      ]
      "logprobs" => null
      "finish_reason" => "stop"
    ]
  ]
  "usage" => array:7 [▼
    "prompt_tokens" => 14
    "completion_tokens" => 634
    "total_tokens" => 648
    "prompt_tokens_details" => array:1 [▼
      "cached_tokens" => 0
    ]
    "completion_tokens_details" => array:1 [▼
      "reasoning_tokens" => 233
    ]
    "prompt_cache_hit_tokens" => 0
    "prompt_cache_miss_tokens" => 14
  ]
  "system_fingerprint" => "fp_393bca965e_prod0623_fp8_kvcache"
]

##贴一下接口文档地址-快速导航

相关推荐
神仙别闹7 小时前
基于 C++ 实现(控制台)学生成绩管理系统
开发语言·c++
伞伞悦读8 小时前
【第36期】Python 目录与路径详解:pathlib、文件遍历、创建、复制、移动和删除风险
开发语言·python
北京自在科技9 小时前
谷歌 Find Hub 迎来新版本更新
android·安卓
2601_9669496510 小时前
只拿到股票代码还不够:量化程序到底还需要哪些标的信息?——从数据建模开始理解股票元数据
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
m0_7345717611 小时前
深入理解5g <十八>传输块tbsize的计算
开发语言·5g
RAN114267600812 小时前
1.3第一个程序的介绍
开发语言·qt
blue_ice .13 小时前
Verilog DDS 数字信号发生器:DAC 输出模拟波形与 ADC 回采观测
开发语言·单片机·嵌入式硬件·fpga开发
远翔调光芯片^1382879887213 小时前
ECP5702能芯科技PD取电芯片在市场上的优势有哪些?
开发语言·人工智能·单片机·嵌入式硬件·智能家居
泡海椒14 小时前
规则引擎对比:JQuick-Java vs Drools 轻量场景选型对比
java·开发语言
泡泡鱼(敲代码中)14 小时前
Python 容器类型学习笔记:列表、元组、字典、集合
开发语言·笔记·python·pycharm