From 187ce0112f1c000478318902b2d10c7089f8ad7a Mon Sep 17 00:00:00 2001 From: tianya Date: Thu, 13 Mar 2025 21:45:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0AI=E5=8A=A9=E6=89=8B=E6=9D=83?= =?UTF-8?q?=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/admin/ai_add.php | 1 + src/admin/ai_edit.php | 13 +++--------- src/admin/ai_log_main.php | 3 ++- src/admin/ai_main.php | 2 +- src/admin/ai_model_add.php | 1 + src/admin/ai_model_edit.php | 4 ++++ src/admin/ai_model_main.php | 2 +- src/admin/ai_prompt_add.php | 1 + src/admin/ai_prompt_edit.php | 3 +++ src/admin/ai_prompt_main.php | 3 +-- src/admin/ai_prompt_view.php | 15 +------------- src/admin/inc/grouplist.txt | 19 +++++++++++++++++- src/admin/sys_info.php | 32 ++++++++++++++++++++++++++++++ src/admin/templets/ai_log_main.htm | 4 ++-- src/admin/templets/sys_info.htm | 23 +++++++++++++++++++++ 15 files changed, 94 insertions(+), 32 deletions(-) diff --git a/src/admin/ai_add.php b/src/admin/ai_add.php index e276f944..8c7805f8 100644 --- a/src/admin/ai_add.php +++ b/src/admin/ai_add.php @@ -9,6 +9,7 @@ * @link https://www.dedebiz.com */ require(dirname(__FILE__)."/config.php"); +CheckPurview('ai_New'); if (empty($dopost)) $dopost = ''; if ($dopost == "add") { $title = isset($title)? HtmlReplace($title, -1) : ''; diff --git a/src/admin/ai_edit.php b/src/admin/ai_edit.php index 2d922964..f414a7d3 100644 --- a/src/admin/ai_edit.php +++ b/src/admin/ai_edit.php @@ -9,22 +9,15 @@ * @link https://www.dedebiz.com */ require_once(dirname(__FILE__)."/config.php"); -$ENV_GOBACK_URL = empty($_COOKIE['ENV_GOBACK_URL']) ? 'ai_main.php' : $_COOKIE['ENV_GOBACK_URL']; if (empty($dopost)) $dopost = ''; $id = isset($id)? intval($id) : 0; -if (isset($allid)) { - $aids = explode(',', $allid); - if (count($aids) == 1) { - $id = intval($aids[0]); - $dopost = "delete"; - } -} if ($dopost == "delete") { + CheckPurview('ai_Del'); $dsql->ExecuteNoneQuery("DELETE FROM `#@__ai` WHERE id='$id'"); ShowMsg("成功删除一个大模型", $ENV_GOBACK_URL); exit(); } else if ($dopost == "saveedit") { - + CheckPurview('ai_Edit'); $title = isset($title)? HtmlReplace($title, -1) : ''; $description = isset($description)? HtmlReplace($description, -1) : ''; $company = isset($company)? HtmlReplace($company, -1) : ''; @@ -36,8 +29,8 @@ if ($dopost == "delete") { ShowMsg("成功修改一个大模型", $ENV_GOBACK_URL); exit(); } +CheckPurview('ai_Edit'); $myAI = $dsql->GetOne("SELECT * FROM `#@__ai` WHERE id=$id"); - $sql = "SELECT * FROM `#@__ai_model` WHERE aiid=$id ORDER BY id DESC"; $dlist = new DataListCP(); $dlist->SetTemplet(DEDEADMIN.'/templets/ai_edit.htm'); diff --git a/src/admin/ai_log_main.php b/src/admin/ai_log_main.php index 44471333..48dd2f9e 100644 --- a/src/admin/ai_log_main.php +++ b/src/admin/ai_log_main.php @@ -9,10 +9,11 @@ * @link https://www.dedebiz.com */ require_once(dirname(__FILE__)."/config.php"); -CheckPurview('sys_Log'); +CheckPurview('ai_LogList'); require_once(DEDEINC."/datalistcp.class.php"); require_once(DEDEINC."/common.func.php"); DedeSetCookie("ENV_GOBACK_URL", $dedeNowurl, time() + 3600, "/"); +CheckPurview('ai_Del'); $sql = $where = ''; if (empty($adminid)) $adminid = 0; if (empty($cip)) $cip = ''; diff --git a/src/admin/ai_main.php b/src/admin/ai_main.php index befa0ba5..6eced8aa 100644 --- a/src/admin/ai_main.php +++ b/src/admin/ai_main.php @@ -10,7 +10,7 @@ */ require_once(dirname(__FILE__).'/config.php'); require_once(DEDEINC.'/datalistcp.class.php'); -DedeSetCookie('ENV_GOBACK_URL', $dedeNowurl, time() + 3600, '/'); +CheckPurview('ai_List'); $sql = "SELECT * FROM `#@__ai` ORDER BY id DESC"; $dlist = new DataListCP(); diff --git a/src/admin/ai_model_add.php b/src/admin/ai_model_add.php index 4185dbb9..d1d17de0 100644 --- a/src/admin/ai_model_add.php +++ b/src/admin/ai_model_add.php @@ -9,6 +9,7 @@ * @link https://www.dedebiz.com */ require(dirname(__FILE__)."/config.php"); +CheckPurview('ai_ModelNew'); if (empty($dopost)) $dopost = ''; $aiid = isset($aiid) ? intval($aiid) : 0; if ($dopost == "add") { diff --git a/src/admin/ai_model_edit.php b/src/admin/ai_model_edit.php index b1997bd7..8d261b97 100644 --- a/src/admin/ai_model_edit.php +++ b/src/admin/ai_model_edit.php @@ -9,14 +9,17 @@ * @link https://www.dedebiz.com */ require_once(dirname(__FILE__)."/config.php"); + if (empty($dopost)) $dopost = ''; $id = isset($id)? intval($id) : 0; $myModel = $dsql->GetOne("SELECT * FROM `#@__ai_model` WHERE id=$id"); if ($dopost == "delete") { + CheckPurview('ai_ModelDel'); $dsql->ExecuteNoneQuery("DELETE FROM `#@__ai_model` WHERE id='$id'"); ShowMsg("成功删除一个模型版本", "ai_model_main.php"); exit(); } else if ($dopost == "saveedit") { + CheckPurview('ai_ModelEdit'); $title = isset($title)? HtmlReplace($title, -1) : ''; $description = isset($description)? HtmlReplace($description, -1) : ''; $model = isset($model)? HtmlReplace($model, -1) : ''; @@ -26,6 +29,7 @@ if ($dopost == "delete") { ShowMsg("成功修改一个模型版本", "ai_edit.php?id={$myModel['aiid']}&dopost=getedit"); exit(); } +CheckPurview('ai_ModelEdit'); $ai = $dsql->GetOne("SELECT * FROM `#@__ai` WHERE id=".$myModel['aiid']); include DedeInclude('templets/ai_model_edit.htm'); ?> \ No newline at end of file diff --git a/src/admin/ai_model_main.php b/src/admin/ai_model_main.php index 656d4398..f61dc48c 100644 --- a/src/admin/ai_model_main.php +++ b/src/admin/ai_model_main.php @@ -10,7 +10,7 @@ */ require_once(dirname(__FILE__).'/config.php'); require_once(DEDEINC.'/datalistcp.class.php'); -DedeSetCookie('ENV_GOBACK_URL', $dedeNowurl, time() + 3600, '/'); +CheckPurview('ai_ModelList'); $sql = "SELECT AM.*,A.title as aititle FROM `#@__ai_model` AM LEFT JOIN `#@__ai` A ON A.id = AM.aiid WHERE 1=1 ORDER BY AM.sortrank ASC,AM.id DESC"; $dlist = new DataListCP(); diff --git a/src/admin/ai_prompt_add.php b/src/admin/ai_prompt_add.php index d22ac840..b433f8fd 100644 --- a/src/admin/ai_prompt_add.php +++ b/src/admin/ai_prompt_add.php @@ -9,6 +9,7 @@ * @link https://www.dedebiz.com */ require(dirname(__FILE__)."/config.php"); +CheckPurview('ai_PromptNew'); if (empty($dopost)) $dopost = ''; $id = isset($id) ? intval($id) : 0; if ($dopost == "add") { diff --git a/src/admin/ai_prompt_edit.php b/src/admin/ai_prompt_edit.php index 86ef4e60..e0eb2fe0 100644 --- a/src/admin/ai_prompt_edit.php +++ b/src/admin/ai_prompt_edit.php @@ -13,10 +13,12 @@ if (empty($dopost)) $dopost = ''; $id = isset($id)? intval($id) : 0; $myPrompt = $dsql->GetOne("SELECT * FROM `#@__ai_prompt` WHERE id=$id"); if ($dopost == "delete") { + CheckPurview('ai_PromptDel'); $dsql->ExecuteNoneQuery("DELETE FROM `#@__ai_prompt` WHERE id='$id'"); ShowMsg("成功删除一个提示词", "ai_prompt_main.php"); exit(); } else if ($dopost == "saveedit") { + CheckPurview('ai_PromptEdit'); $title = isset($title)? HtmlReplace($title, -1) : ''; $description = isset($description)? HtmlReplace($description, -1) : ''; $prompt = isset($prompt)? $prompt : ''; @@ -26,5 +28,6 @@ if ($dopost == "delete") { ShowMsg("成功修改一个提示词", "ai_prompt_edit.php?id={$myPrompt['id']}"); exit(); } +CheckPurview('ai_PromptEdit'); include DedeInclude('templets/ai_prompt_edit.htm'); ?> \ No newline at end of file diff --git a/src/admin/ai_prompt_main.php b/src/admin/ai_prompt_main.php index 04393d9b..3fbef062 100644 --- a/src/admin/ai_prompt_main.php +++ b/src/admin/ai_prompt_main.php @@ -10,8 +10,7 @@ */ require_once(dirname(__FILE__).'/config.php'); require_once(DEDEINC.'/datalistcp.class.php'); -DedeSetCookie('ENV_GOBACK_URL', $dedeNowurl, time() + 3600, '/'); - +CheckPurview('ai_PromptList'); $sql = "SELECT * FROM `#@__ai_prompt` ORDER BY id DESC"; $dlist = new DataListCP(); $dlist->SetTemplet(DEDEADMIN.'/templets/ai_prompt_main.htm'); diff --git a/src/admin/ai_prompt_view.php b/src/admin/ai_prompt_view.php index b0108243..59c2b14c 100644 --- a/src/admin/ai_prompt_view.php +++ b/src/admin/ai_prompt_view.php @@ -9,22 +9,9 @@ * @link https://www.dedebiz.com */ require_once(dirname(__FILE__)."/config.php"); +CheckPurview('ai_PromptView'); if (empty($dopost)) $dopost = ''; $id = isset($id)? intval($id) : 0; $myPrompt = $dsql->GetOne("SELECT * FROM `#@__ai_prompt` WHERE id=$id"); -if ($dopost == "delete") { - $dsql->ExecuteNoneQuery("DELETE FROM `#@__ai_prompt` WHERE id='$id'"); - ShowMsg("成功删除一个提示词", "ai_prompt_main.php"); - exit(); -} else if ($dopost == "saveedit") { - $title = isset($title)? HtmlReplace($title, -1) : ''; - $description = isset($description)? HtmlReplace($description, -1) : ''; - $prompt = isset($prompt)? $prompt : ''; - $dfprompt = isset($dfprompt)? $dfprompt : ''; - $query = "UPDATE `#@__ai_prompt` SET title='$title',description='$description',prompt='$prompt',dfprompt='$dfprompt' WHERE id='$id' "; - $dsql->ExecuteNoneQuery($query); - ShowMsg("成功修改一个提示词", "ai_prompt_edit.php?id={$myPrompt['id']}"); - exit(); -} include DedeInclude('templets/ai_prompt_view.htm'); ?> \ No newline at end of file diff --git a/src/admin/inc/grouplist.txt b/src/admin/inc/grouplist.txt index e5af36bb..e5a8a5af 100644 --- a/src/admin/inc/grouplist.txt +++ b/src/admin/inc/grouplist.txt @@ -85,4 +85,21 @@ >member_Type>会员类型管理 >member_List>列出会员 >member_Edit>修改会员 ->member_Del>删除会员 \ No newline at end of file +>member_Del>删除会员 + +>>智能管理 + +>ai_List>模型管理 +>ai_New>新建模型 +>ai_Edit>修改模型 +>ai_Del>删除模型 +>ai_ModelList>模型版本管理 +>ai_ModelNew>新建模型版本 +>ai_ModelEdit>修改模型版本 +>ai_ModelDel>删除模型版本 +>ai_PromptList>提示词管理 +>ai_PromptNew>新建提示词 +>ai_PromptEdit>修改提示词 +>ai_PromptView>预览提示词 +>ai_PromptDel>删除提示词 +>ai_LogList>调用日志管理 \ No newline at end of file diff --git a/src/admin/sys_info.php b/src/admin/sys_info.php index eb62b4e3..e0a13c1e 100644 --- a/src/admin/sys_info.php +++ b/src/admin/sys_info.php @@ -159,6 +159,38 @@ exit; $hash .= $chars[mt_rand(0, $max)]; } echo $hash; + exit(); +} else if($dopost == 'ping_ai_server'){ + $server = isset($server) ? $server : ''; + $apikey = isset($apikey) ? $apikey : ''; + if (empty($server) || empty($apikey)) { + echo 'error'; + } else { + require_once(DEDEINC.'/libraries/dedehttpdown.class.php'); + $params = $_GET; + unset($params['dopost']); + unset($params['apikey']); + unset($params['server']); + $params['timestamp'] = time(); // 加入时间戳 + $cuserLogin = new userLogin(); + $params['adminid'] = $cuserLogin->getUserID(); // 加入时间戳 + $params['ip'] = $_SERVER['REMOTE_ADDR'] ?? '127.0.0.1'; // 获取客户端IP + + ksort($params); // 按字典序排序 + $queryString = http_build_query($params); // 生成查询字符串 + $params['sign'] = md5($queryString . $apikey); // 计算MD5签名 + $url = $server . '/api/ping?' . http_build_query($params); + + $dhd = new DedeHttpDown(); + $dhd->OpenUrl($url); + $data = $dhd->GetJSON(); + if (isset($data->code) && $data->code == 0) { + echo 'ok'; + } else { + echo 'error'; + } + } + exit(); } include DedeInclude('templets/sys_info.htm'); diff --git a/src/admin/templets/ai_log_main.htm b/src/admin/templets/ai_log_main.htm index eb9675d6..4fbd1e98 100644 --- a/src/admin/templets/ai_log_main.htm +++ b/src/admin/templets/ai_log_main.htm @@ -3,7 +3,7 @@ - 调用日志列表 + 调用日志管理 @@ -12,7 +12,7 @@
diff --git a/src/admin/templets/sys_info.htm b/src/admin/templets/sys_info.htm index 27045f8b..01ec8e42 100644 --- a/src/admin/templets/sys_info.htm +++ b/src/admin/templets/sys_info.htm @@ -9,6 +9,7 @@ + @@ -152,6 +153,12 @@ if ($row['varname']=='cfg_cookie_encode') { $addstr='更新'; } + if ($row['varname']=='cfg_ai_server') { + $addstr='检测'; + } + if ($row['varname']=='cfg_ai_apikey') { + $addstr='更新'; + } echo " {$addstr}"; } ?> @@ -221,6 +228,22 @@ jQuery("#edit___cfg_cookie_encode").val(data); }); } + function resetAPIKey() { + jQuery.get("sys_info.php?dopost=make_encode", function(data) { + jQuery("#edit___cfg_ai_apikey").val(data); + }); + } + function pingAIServer() { + let server = encodeURI(jQuery("#edit___cfg_ai_server").val()); + let apikey = jQuery("#edit___cfg_ai_apikey").val(); + jQuery.get("sys_info.php?dopost=ping_ai_server&server="+server+"&apikey="+apikey, function(data) { + if (data == "ok") { + ShowMsg("DedeBIZ智能助手服务连接成功") + } else { + ShowMsg("DedeBIZ智能助手服务连接失败,请检查配置") + } + }); + } $(document).ready(function() { $("#btnClear").click(() => { location.reload();