三步接入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
相关推荐
小江的记录本7 分钟前
【MyBatis-Plus】MyBatis-Plus的核心特性、条件构造器、分页插件、乐观锁插件
java·前端·spring boot·后端·sql·tomcat·mybatis
驕傲的兎孒15 分钟前
基于 SpringBoot + Vue3 + AI 打造企业级售后服务支持平台 | 实战方案分享
人工智能·spring boot·后端
vx-程序开发15 分钟前
springboot在线装修管理系统-计算机毕业设计源码56278
java·c语言·spring boot·python·spring·django·php
大傻^18 分钟前
Spring AI Alibaba 可观测性实践:AI应用监控与链路追踪
java·人工智能·后端·spring·springaialibaba
幽络源小助理22 分钟前
网页软件库源码(带1153条资源)-含详细搭建教程
php
诗人不写诗27 分钟前
spring是如何组织切面的
java·后端·spring
winfredzhang38 分钟前
用 Python + DeepSeek AI 构建文件批量重命名与智能管理工具
python·api·重命名·预览·解压·deepseek
小杨同学491 小时前
STM32 进阶封神之路(二十二):DMA 实战全攻略 ——ADC 采集 + 串口收发 + 内存复制(库函数 + 代码落地)
后端·单片机·嵌入式
AI英德西牛仔1 小时前
豆包公式格式
人工智能·ai·deepseek·ds随心转
天下无贼!1 小时前
【Python】2026版——FastAPI 框架快速搭建后端服务
开发语言·前端·后端·python·aigc·fastapi