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

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

相关推荐
宇木灵39 分钟前
C语言基础-十、文件操作
c语言·开发语言·学习
云泽8081 小时前
C++ 多态入门:虚函数、重写、虚析构及 override/final 实战指南(附腾讯面试题)
开发语言·c++
yanghuashuiyue2 小时前
lambda+sealed+record
java·开发语言
summerkissyou19872 小时前
Android Handler:机制、原理与示例
android
yzx9910133 小时前
Python数据结构入门指南:从基础到实践
开发语言·数据结构·python
哈哈浩丶3 小时前
安卓系统全流程启动
android·linux·驱动开发
衍生星球3 小时前
【JSP程序设计】Servlet对象 — page对象
java·开发语言·servlet·jsp·jsp程序设计
扶苏瑾3 小时前
线程安全问题的产生原因与解决方案
java·开发语言·jvm
FYKJ_20104 小时前
springboot大学校园论坛管理系统--附源码42669
java·javascript·spring boot·python·spark·django·php
小小小米粒4 小时前
函数式接口 + Lambda = 方法逻辑的 “插拔式解耦”
开发语言·python·算法