三步接入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
相关推荐
why1515 小时前
腾讯(QQ浏览器)后端开发
开发语言·后端·golang
浪裡遊5 小时前
跨域问题(Cross-Origin Problem)
linux·前端·vue.js·后端·https·sprint
声声codeGrandMaster5 小时前
django之优化分页功能(利用参数共存及封装来实现)
数据库·后端·python·django
呼Lu噜6 小时前
WPF-遵循MVVM框架创建图表的显示【保姆级】
前端·后端·wpf
bing_1586 小时前
为什么选择 Spring Boot? 它是如何简化单个微服务的创建、配置和部署的?
spring boot·后端·微服务
学c真好玩6 小时前
Django创建的应用目录详细解释以及如何操作数据库自动创建表
后端·python·django
Asthenia04126 小时前
GenericObjectPool——重用你的对象
后端
Piper蛋窝7 小时前
Go 1.18 相比 Go 1.17 有哪些值得注意的改动?
后端
excel7 小时前
招幕技术人员
前端·javascript·后端
盖世英雄酱581367 小时前
什么是MCP
后端·程序员