三步接入DeepSeek智能对话API:PHP代码实现与响应解析

概述

这篇技术博客提供了两方面的实用指南:首先,详细介绍了如何接入DeepSeek智能对话API,涵盖创建API Key、PHP代码实现请求封装及返回结果解析,示例代码清晰展示了请求参数与错误处理逻辑,并附有响应结构说明,内容简明实用,兼顾代码示例与系统配置,适合开发者快速实现API集成或排查环境问题,提升开发效率。

实践步骤

1、去DeepSeek的开放平台,创建API Key 保存好,代码接入的时候需要使用,另外提醒一下需要充值,如果尝试一下充10块钱就可以了。

2、DeepSeek的接入超级简单,实例中给出了Curl方式、Python、和Nodejs的方式进行通信,PHP语言封装一个Curl请求的参数即可。

php 复制代码
function callDeepSeekApi($userMessage = ''): string
{
    $apiKey = Env::get("DeepSeek.keys");
    $url = 'https://api.deepseek.com/chat/completions';
    $headers = [
        'Content-Type: application/json',
        'Authorization: Bearer ' . $apiKey
    ];
    $data = [
        'model' => 'deepseek-chat',
        'messages' => [
            [
                'role' => 'system',
                'content' => 'You are a helpful assistant.'
            ],
            [
                'role' => 'user',
                'content' => $userMessage
            ]
        ],
        'stream' => false
    ];
    $dataString = json_encode($data);
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
    curl_setopt($ch, CURLOPT_POSTFIELDS, $dataString);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    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;
}

请求代码说明:

  • $apiKey = Env::get("DeepSeek.keys"); 创建应用的Key
  • $userMessage 问题的关键字
  • $errorCode 、$errorMessage 捕捉到的Curl错误信息和异常

返回信息说明:返回信息的content就是DeepSeek对话返回的结果,需要哪些字段根据自己的需要进行封装即可。

json 复制代码
{
    "id": "d12f6296-f6f0-4e53-9e6f-62853dffde11",
    "object": "chat.completion",
    "created": 1743917411,
    "model": "deepseek-chat",
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "《将进酒》《蜀道难》等作,以奇绝想象、奔放句式为魂,八言诗体虽非太白常用,然其神韵可试摹之。今仿其\"黄河之水天上来\"之恣肆、\"仰天大笑出门去\"之疏狂,作八言律一首,谨供一哂:\n\n**《醉邀天山月歌》**\n\n携青崖白鹿踏云而行兮, \n揽九霄银河倾作酒卮。 \n唤昆仑雪魄同斟北斗兮, \n笑蓬莱仙翁不解剑痴。 \n长风万里吹散浮名去矣, \n大壑千寻容我醉眠之。 \n待邀天山明月共骑鲸背, \n直向扶桑树下折珊瑚枝。\n\n\n注:此诗尝试融合李白\"仙人抚我顶,结发受长生\"的游仙意象、\"我醉欲眠卿且去\"的率真性情。首联化用《梦游天姥吟留别》\"脚著谢公屐\"的登云姿态,尾联呼应《古风》\"吾将营丹砂,永与世人别\"的出世遐想,八言长句较七言更显跌宕,略得谪仙三分疏狂气。"
            },
            "logprobs": null,
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 22,
        "completion_tokens": 276,
        "total_tokens": 298,
        "prompt_tokens_details": {
            "cached_tokens": 0
        },
        "prompt_cache_hit_tokens": 0,
        "prompt_cache_miss_tokens": 22
    },
    "system_fingerprint": "fp_3d5141a69a_prod0225"
}

其他

解决VMware Fusion 虚拟机时间不同步的问题

VMware Fusion 虚拟机和宿主机系统时间不同步的问题困扰我很久了,正好在这里一起进行一次记录一下,镜像是Mac的CentOS Stream 9,如果想查询系统的版本信息,可以执行命令hostnamectl

1、在虚拟机中安装 VMware Tools插件

shell 复制代码
sudo yum install open-vm-tools open-vm-tools-desktop

2、启动服务

shell 复制代码
sudo systemctl enable --now vmtoolsd

3、查看服务状态

shell 复制代码
systemctl status vmtoolsd

4、重启虚拟机,执行date命令验证

SVN 条目不可读

问题:这个问题主要出现在svnserve.conf文件中的anon-access访问权限的设置问题上。

解决:打开svnserve.conf文件后,把read 改成 none,修改完配置文件,别忘了需要重启svn服务才会生效,此时直接显示日志,不会再报错了。

ini 复制代码
#anon-access = read
anon-access = none
相关推荐
duapple4 小时前
Golang基于反射的ioctl实现
开发语言·后端·golang
my_styles7 小时前
docker-compose部署项目(springboot服务)以及基础环境(mysql、redis等)ruoyi-ry
spring boot·redis·后端·mysql·spring cloud·docker·容器
独行soc9 小时前
2025年渗透测试面试题总结-百度面经(题目+回答)
运维·开发语言·经验分享·学习·面试·渗透测试·php
免檒9 小时前
go语言协程调度器 GPM 模型
开发语言·后端·golang
不知道写什么的作者9 小时前
Flask快速入门和问答项目源码
后端·python·flask
caihuayuan510 小时前
生产模式下react项目报错minified react error #130的问题
java·大数据·spring boot·后端·课程设计
一只码代码的章鱼10 小时前
Spring Boot- 2 (数万字入门教程 ):数据交互篇
spring boot·后端·交互
pengone11 小时前
PHP8.0版本导出excel失败
php·excel
不再幻想,脚踏实地13 小时前
Spring AOP从0到1
java·后端·spring
编程乐学(Arfan开发工程师)13 小时前
07、基础入门-SpringBoot-自动配置特性
java·spring boot·后端