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"
]

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

相关推荐
Bert.Cai5 小时前
Python time.sleep函数作用
开发语言·python
lxl13075 小时前
C++算法(11)字符串
开发语言·c++·算法
陳10305 小时前
C++:哈希表
开发语言·c++·散列表
稻草猫.5 小时前
SpringBoot日志全解析:从调试到持久化
java·开发语言·spring boot·java-ee·idea
小鸡吃米…5 小时前
Python线程同步
开发语言·数据结构·python
白帽子黑客-宝哥6 小时前
渗透测试“保姆级”实战成长手册
开发语言·网络安全·渗透测试·php
脑子不好真君6 小时前
手势操控的粒子土星 (Three.js + MediaPipe)
开发语言·javascript·ecmascript
LXS_3576 小时前
案例 —— 机房预约系统
开发语言·c++·学习方法
代码探秘者6 小时前
【Java】final、finally、finalize 区别
java·开发语言
yeflx6 小时前
C++纯虚接口
开发语言·c++