diff --git a/application/app/controller/Deepseek.php b/application/app/controller/Deepseek.php new file mode 100644 index 0000000..990e48e --- /dev/null +++ b/application/app/controller/Deepseek.php @@ -0,0 +1,203 @@ +'admin_editor_text_content', + '2'=>'admin_editor_text_like_up_log', + '3'=>'admin_notice_banner', + '4'=>'admin_business_cooperation' + ]; + protected $page_num = 10; + // 加 bcadd(,,20) + // 减 bcsub(,,20) + // 乘 bcmul(,,20) + // 除 bcdiv(,,20) + ################################################################接口################################################################ + ################################################################接口################################################################ + ################################################################接口################################################################ + + + public function test_index(){ + + return $this->fetch(); + } + + + // 获取板块,及板块下类型标签 + public function send_msg_deepseek($data = ['msg'=>'']){ + // dump('456'); + // die; + try { + $data = input('post.'); + if(!array_key_exists('msg', $data)){ + return $this->msg(10001); + } + if(!$this->verify_data_is_ok($data['msg'],'str')){ + return $this->msg(10005); + } + // $data['msg'] = ""; + // dump($data); + // die; + $return_data = $this->deepseek_only_onec_action($data); + // $return_data = $this->deepseek_ceshiyongjiekou($data); + return $return_data; + } catch (\Exception $e) { + // 捕获异常 + $logContent["flie"] = $e->getFile(); + $logContent["line"] = $e->getLine(); + $logContent['all_content'] = "异常信息:\n"; + $logContent['all_content'] = "接口:send_msg_deepseek\n"; + $logContent['all_content'] .= "消息: " . $e->getMessage() . "\n"; + $logContent['all_content'] .= "代码: " . $e->getCode() . "\n"; + $logContent['all_content'] .= "文件: " . $e->getFile() . "\n"; + $logContent['all_content'] .= "行号: " . $e->getLine() . "\n"; + $logContent['all_content'] .= "跟踪信息:\n" . $e->getTraceAsString() . "\n"; + $this->record_api_log([], $logContent, null); + return $this->msg(99999); + } + + } + + public function deepseek_only_onec_action($xinxi){ + // DeepSeek API密钥 + $apiKey = 'sk-28dd23215ef84772b64d77011419e271'; + + // DeepSeek API的端点 + $apiUrl = 'https://api.deepseek.com/v1/chat/completions'; + + // 准备请求数据 + $data = [ + "messages" => [ + [ + "content" => "你是一个有关身体健康的专家,能根据用户提供的身体数据给出对应的分析和建议", + "role" => "system" + ], + [ + "content" => $xinxi['msg'], + "role" => "user" + ] + ], + "model" => "deepseek-chat", + "frequency_penalty" => 0, + "max_tokens" => 2048, + "presence_penalty" => 0, + "response_format" => [ + "type" => "text" + ], + "stop" => null, + "stream" => false, + "stream_options" => null, + "temperature" => 1, + "top_p" => 1, + "tools" => null, + "tool_choice" => "none", + "logprobs" => false, + "top_logprobs" => null + ]; + + // 初始化cURL会话 + $ch = curl_init(); + + // 设置cURL选项 + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 禁用证书验证 + curl_setopt($ch, CURLOPT_URL, $apiUrl); // 设置API URL + curl_setopt($ch, CURLOPT_POST, true); // 使用POST方法 + curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); // 设置POST数据 + curl_setopt($ch, CURLOPT_HTTPHEADER, [ + 'Authorization: Bearer ' . $apiKey, // 设置API密钥 + 'Content-Type: application/json', // 设置请求头为JSON + ]); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 返回响应而不是直接输出 + + // 执行cURL请求并获取响应 + $response = curl_exec($ch); + + // 检查是否有cURL错误 + if (curl_errno($ch)) { + echo 'cURL请求失败: ' . curl_error($ch); + } else { + // 获取HTTP状态码 + $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); + if ($httpCode === 200) { + // 解析JSON响应 + $result = json_decode($response, true); + // print_r($result); // 输出API响应 + + return $this->msg(0,$result['choices'][0]['message']['content']); + // dump($result); + } else { + return $this->msg(10001); + // echo 'API请求失败,HTTP状态码: ' . $httpCode; + // echo '响应内容: ' . $response; + } + } + + // 关闭cURL会话 + curl_close($ch); + + } + + + public function deepseek_ceshiyongjiekou(){ + $curl = curl_init(); + + curl_setopt_array($curl, array( + CURLOPT_URL => 'https://api.deepseek.com/chat/completions', + CURLOPT_RETURNTRANSFER => true, + CURLOPT_ENCODING => '', + CURLOPT_MAXREDIRS => 10, + CURLOPT_TIMEOUT => 0, + CURLOPT_FOLLOWLOCATION => true, + CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, + CURLOPT_CUSTOMREQUEST => 'POST', + CURLOPT_POSTFIELDS =>'{ + "messages": [ + { + "content": "You are a helpful assistant", + "role": "system" + }, + { + "content": "Hi", + "role": "user" + } + ], + "model": "deepseek-chat", + "frequency_penalty": 0, + "max_tokens": 2048, + "presence_penalty": 0, + "response_format": { + "type": "text" + }, + "stop": null, + "stream": false, + "stream_options": null, + "temperature": 1, + "top_p": 1, + "tools": null, + "tool_choice": "none", + "logprobs": false, + "top_logprobs": null + }', + CURLOPT_HTTPHEADER => array( + 'Content-Type: application/json', + 'Accept: application/json', + 'Authorization: Bearer ' + ), + )); + + $response = curl_exec($curl); + + curl_close($curl); + echo $response; + } + + + + +} \ No newline at end of file diff --git a/application/app/view/deepseek/test_index.html b/application/app/view/deepseek/test_index.html new file mode 100644 index 0000000..0fcf709 --- /dev/null +++ b/application/app/view/deepseek/test_index.html @@ -0,0 +1,165 @@ + + + + + + + + + + + + + + + deepseek测试页面 + + + + + +
+
+ +
+
+ + +
+
思考中请稍等
+
+ + + + + + diff --git a/application/route.php b/application/route.php index 0e73196..8d60f99 100644 --- a/application/route.php +++ b/application/route.php @@ -43,6 +43,17 @@ Route::any('/device_api_1', 'admin/device/device_request_api'); Route::any('/see_device_msg', 'admin/device/see_device_msg'); +// // ################################################################AI接口处理################################################################ +// // ################################################################AI接口处理################################################################ +// 调用deepseek接口 +Route::any('/ai/send_msg_deepseek', 'app/deepseek/send_msg_deepseek'); +// ai测试页面 +Route::any('/ai/test_index', 'app/deepseek/test_index'); + + +// Route::any('/testedition/get_all_record_data_group', 'testapp/pagingcontrast/get_all_record_data_group'); + + // // ################################################################管理后台################################################################ // // ################################################################管理后台################################################################