From bc5046c04db9658b24bbb487ce2dc58d42289769 Mon Sep 17 00:00:00 2001 From: zzw <2318266924@qq.com> Date: Fri, 4 Aug 2023 18:14:02 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E6=B7=BB=E5=8A=A0=E9=80=9A?= =?UTF-8?q?=E4=B9=89=E5=8D=83=E9=97=AE=E6=9C=BA=E5=99=A8=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/Api/SystemController.php | 18 +++++++++++++++++- app/Models/UserBot.php | 1 + app/Tasks/BotReceiveMsgTask.php | 16 ++++++++++++++++ .../manage/setting/components/SystemAibot.vue | 16 ++++++++++++++++ 4 files changed, 50 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Api/SystemController.php b/app/Http/Controllers/Api/SystemController.php index 7f7efd9f1..0150f8fca 100755 --- a/app/Http/Controllers/Api/SystemController.php +++ b/app/Http/Controllers/Api/SystemController.php @@ -258,7 +258,9 @@ class SystemController extends AbstractController 'claude_agency', 'wenxin_key', 'wenxin_secret', - 'wenxin_model' + 'wenxin_model', + 'qianwen_key', + 'qianwen_model' ]; if ($type == 'save') { @@ -292,6 +294,12 @@ class SystemController extends AbstractController WebSocketDialogMsg::sendMsg(null, $dialog->id, 'text', ['text' => "设置成功"], $botUser->userid, true, false, true); } } + if ($backup['qianwen_key'] != $setting['qianwen_key']) { + $botUser = User::botGetOrCreate('ai-qianwen'); + if ($botUser && $dialog = WebSocketDialog::checkUserDialog($botUser, $user->userid)) { + WebSocketDialogMsg::sendMsg(null, $dialog->id, 'text', ['text' => "设置成功"], $botUser->userid, true, false, true); + } + } } // $setting['wenxin_model'] = $setting['wenxin_model'] ?: 'ERNIE-Bot-turbo'; @@ -302,6 +310,14 @@ class SystemController extends AbstractController } } } + $setting['qianwen_model'] = $setting['qianwen_model'] ?: 'qwen-v1'; + if (env("SYSTEM_SETTING") == 'disabled') { + foreach ($keys as $item) { + if (strlen($setting[$item]) > 12) { + $setting[$item] = substr($setting[$item], 0, 4) . str_repeat('*', strlen($setting[$item]) - 8) . substr($setting[$item], -4); + } + } + } // return Base::retSuccess('success', $setting ?: json_decode('{}')); } diff --git a/app/Models/UserBot.php b/app/Models/UserBot.php index 2bfe2c626..2c8c62564 100644 --- a/app/Models/UserBot.php +++ b/app/Models/UserBot.php @@ -55,6 +55,7 @@ class UserBot extends AbstractModel 'ai-openai' => 'ChatGPT', 'ai-claude' => 'Claude', 'ai-wenxin' => 'Wenxin', + 'ai-qianwen' => 'QianWen', 'bot-manager' => '机器人管理', default => '', // 不是系统机器人时返回空(也可以拿来判断是否是系统机器人) }; diff --git a/app/Tasks/BotReceiveMsgTask.php b/app/Tasks/BotReceiveMsgTask.php index bc0061c64..aff4ab207 100644 --- a/app/Tasks/BotReceiveMsgTask.php +++ b/app/Tasks/BotReceiveMsgTask.php @@ -417,6 +417,22 @@ class BotReceiveMsgTask extends AbstractTask $error = 'The client version is low (required version ≥ v0.29.12).'; } break; + // QianWen 机器人 + case 'ai-qianwen@bot.system': + $setting = Base::setting('aibotSetting'); + $webhookUrl = "{$serverUrl}/ai/qianwen/send"; + $extras = [ + 'qianwen_key' => $setting['qianwen_key'], + 'qianwen_model' => $setting['qianwen_model'], + 'server_url' => $serverUrl, + ]; + if (empty($extras['qianwen_key'])) { + $error = 'Robot disabled.'; + } elseif (in_array($this->client['platform'], ['win', 'mac', 'web']) + && !Base::judgeClientVersion("0.29.11", $this->client['version'])) { + $error = 'The client version is low (required version ≥ v0.29.12).'; + } + break; // 其他机器人 default: $userBot = UserBot::whereBotId($botUser->userid)->first(); diff --git a/resources/assets/js/pages/manage/setting/components/SystemAibot.vue b/resources/assets/js/pages/manage/setting/components/SystemAibot.vue index af6083208..415c7fccc 100644 --- a/resources/assets/js/pages/manage/setting/components/SystemAibot.vue +++ b/resources/assets/js/pages/manage/setting/components/SystemAibot.vue @@ -47,6 +47,22 @@ +