·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室
返回列表 发布新帖

开一帖:纯php搭建DeepSeek教程

70 6
发表于 昨天 16:59 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
最近老坛们都在讨论DeepSeek。也看到有些大佬非要把简单的搞那么复杂,还搞个什么桌面端的就出来了。只能说这个对站长没有任何用处。谁会安装个CURL别人的加个壳的呢?其实最好的方法还是去他们官网上面提问聊天。毕竟免费的。如果实在要搬到自己的网站上面。官方也是有提供API地址的。(收费的居然也想CURL他的接口,充分说明是用来搞火车头采集的)。

若还有老坛们不是奔着采集的,那小编也可以简单写个php的CURL。分为流式的(打字机般输出体验号)与非流式的(便于火车采集)。下面上干货:
  1. <?php$apikey =$add_deepseekkey;//到deepseek申请$enwse=$_GET['moshi'];if($enwse==='sse'){ //流式输出接口的$postData = ["model"=>'deepseek-chat',"stream"=>true,"max_tokens"=>4000];}else{$postData = ["model"=>'deepseek-chat',"max_tokens"=>4000];        }$context = json_decode($_POST['context']?: "[]", true) ?: [];if (!empty($context)) {$context = array_slice($context, -5);foreach ($context as $message) {$postData['messages'][] = ['role' => 'user', 'content' => str_replace("\n", "\\n", $message[0])];$postData['messages'][] = ['role' => 'assistant', 'content' => str_replace("\n", "\\n", $message[1])];}}$postData['messages'][] = ['role' => 'user', 'content' =>$_POST['message']];$postData = json_encode($postData);$deepseekapiurl="https://api.deepseek.com/v1/chat/completions";//deepseek接口地址if($enwse==='sse'){ //流式输出接口header('Access-Control-Allow-Origin: *');header("Content-Type: text/event-stream");ini_set('output_buffering', 'off');ini_set('zlib.output_compression', false);while (@ob_end_flush()) {}header('Cache-Control: no-cache');header('Connection: keep-alive');header('X-Accel-Buffering: no');setcookie("errcode", ""); setcookie("errmsg", "");$ch = curl_init();$headers= ['Content-Type: application/json','Authorization: Bearer ' . $apikey];$callback = function ($ch, $data) {$complete = json_decode($data);if (isset($complete->error)) {setcookie("errcode", $complete->error->type);setcookie("errmsg", $complete->error->message);        echo "event: close".PHP_EOL;echo "data: Connection closed".PHP_EOL . PHP_EOL;ob_flush();flush();}echo $data;        ob_flush();flush();        return strlen($data);};curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);curl_setopt($ch, CURLOPT_URL, $deepseekapiurl);curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);curl_setopt($ch, CURLOPT_WRITEFUNCTION, $callback);curl_exec($ch);curl_close($ch);}else{//非流式$ch = curl_init();        $headers= ['Content-Type: application/json','Authorization: Bearer ' . $apikey];curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);curl_setopt($ch, CURLOPT_URL, $deepseekapiurl);curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);$response=curl_exec($ch);$response=json_decode($response, true);$result = array('code'=> 200,'asktext'=>str_replace( "\\n", "\n", $response['choices'][0]['message']['content']),'time'=>date('Y-m-d H:i:s'),);echo json_encode($result, JSON_UNESCAPED_UNICODE);exit(); }
复制代码
代码没有对用户输入的 $_GET['moshi']、$_POST['context'] 和 $_POST['message'] 进行充分的验证和过滤,可能会导致安全问题。建议添加输入验证逻辑,确保输入数据的合法性。
我要说一句 收起回复

评论6

浅生Lv.8 发表于 昨天 16:59 | 查看全部
另外SSE要支持POST请求需要引入see.js这个组件。(自行下载)
另外要让代码能高亮显示,表格需要显示等,需要自行下载highlight.min.js,remarkable.js,showdown.min.js

调用的时候就是这样的
  1. var alltext = "";var data = {message: alytyqw,context: JSON.stringify(contextarray),};var jsondata=JSON.stringify(data);eventSource = new SSE("deepseek.php?moshi=sse",{headers: {'Content-Type': 'text/event-stream'},payload: jsondata,method:'POST'});eventSource.addEventListener("open", (event) => {console.log("连接已建立");});eventSource.addEventListener("message", (event) => {if(event.data == "[DONE]"){contextarray.push(alytyqw, alltext);contextarray = contextarray.slice(-5); eventSource.close();return;console.log("连接已关闭");        }var result = JSON.parse(event.data);if(result.choices[0].finish_reason == "stop"){return;}        alltext += result.choices[0].delta.content;        let newalltext = alltext;newalltext = newalltext.replace(/\\n/g, '\n');newalltext = mdHtml.render(newalltext);newalltext = newalltext.replace(/\\t/g, '    ');$("#q" + answer).html(newalltext);$('.RightCont').scrollTop($('.RightCont')[0].scrollHeight );//将滚动条始终保持在底部});eventSource.addEventListener("close", (event) => {console.log("连接已关闭", JSON.stringify(event.data));});
复制代码
我要说一句 收起回复
浅生Lv.8 发表于 昨天 17:00 | 查看全部
把DeepSeek的Ai运用到彩票下期开奖的效果图
开一帖:纯php搭建DeepSeek教程 php怎么搭建,phpseclib,php搭建api
我要说一句 收起回复
拾光Lv.8 发表于 昨天 17:00 | 查看全部
设备配置跟不上呀,原来也想架到本地用用的
我要说一句 收起回复
CrystαlLv.8 发表于 昨天 17:01 | 查看全部
看变量 $enwse
帝国的影子
我要说一句 收起回复
独家记忆Lv.8 发表于 昨天 17:01 | 查看全部
不错,感谢分享
我要说一句 收起回复
62450812Lv.2 发表于 昨天 17:57 | 查看全部 | Edg | Windows 10
谢谢楼主分享!
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:18.217.160.206,GMT+8, 2025-2-12 01:37 , Processed in 0.337191 second(s), 113 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表