概述
这篇技术博客提供了两方面的实用指南:首先,详细介绍了如何接入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