From 9e65500748399d8d4108ffbd7b1cb33087dced8d Mon Sep 17 00:00:00 2001 From: kuaifan Date: Sat, 4 Apr 2026 23:18:21 +0000 Subject: [PATCH] =?UTF-8?q?refactor(ai):=20=E7=AE=80=E5=8C=96AI=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Models/Setting.php | 1 - app/Module/AI.php | 14 -- app/Tasks/BotReceiveMsgTask.php | 4 - .../manage/setting/components/SystemAibot.vue | 232 ------------------ resources/assets/js/utils/ai.js | 196 --------------- 5 files changed, 447 deletions(-) delete mode 100644 resources/assets/js/pages/manage/setting/components/SystemAibot.vue diff --git a/app/Models/Setting.php b/app/Models/Setting.php index 1564b315e..4c200cf0c 100644 --- a/app/Models/Setting.php +++ b/app/Models/Setting.php @@ -199,7 +199,6 @@ class Setting extends AbstractModel $key = trim((string)($setting[$vendor . '_key'] ?? '')); return match ($vendor) { 'ollama' => $key !== '' || !empty($setting['ollama_base_url']), - 'wenxin' => $key !== '' && !empty($setting['wenxin_secret']), default => $key !== '', }; } diff --git a/app/Module/AI.php b/app/Module/AI.php index 89a6832e0..9bd253137 100644 --- a/app/Module/AI.php +++ b/app/Module/AI.php @@ -204,12 +204,6 @@ class AI } $apiKey = Base::val($setting, $modelType . '_key'); - if ($modelType === 'wenxin') { - $wenxinSecret = Base::val($setting, 'wenxin_secret'); - if ($wenxinSecret) { - $apiKey = trim(($apiKey ?: '') . ':' . $wenxinSecret); - } - } if ($modelType === 'ollama' && empty($apiKey)) { $apiKey = Base::strRandom(6); } @@ -768,14 +762,6 @@ class AI } $model = trim((string)($setting[$vendor . '_model'] ?? '')); break; - case 'wenxin': - $secret = trim((string)($setting['wenxin_secret'] ?? '')); - if ($key === '' || $secret === '' || $baseUrl === '') { - return null; - } - $key = $key . ':' . $secret; - $model = trim((string)($setting[$vendor . '_model'] ?? '')); - break; default: if ($key === '' || $baseUrl === '') { return null; diff --git a/app/Tasks/BotReceiveMsgTask.php b/app/Tasks/BotReceiveMsgTask.php index 89ff91180..58150b149 100644 --- a/app/Tasks/BotReceiveMsgTask.php +++ b/app/Tasks/BotReceiveMsgTask.php @@ -490,10 +490,6 @@ class BotReceiveMsgTask extends AbstractTask if ($dialog->session_id) { $extras['context_key'] = 'session_' . $dialog->session_id; } - // 设置文心一言的API密钥 - if ($type === 'wenxin') { - $extras['api_key'] .= ':' . $setting['wenxin_secret']; - } // 群聊清理上下文(群聊不使用上下文) if ($dialog->type === 'group') { $extras['before_clear'] = 1; diff --git a/resources/assets/js/pages/manage/setting/components/SystemAibot.vue b/resources/assets/js/pages/manage/setting/components/SystemAibot.vue deleted file mode 100644 index 91931f152..000000000 --- a/resources/assets/js/pages/manage/setting/components/SystemAibot.vue +++ /dev/null @@ -1,232 +0,0 @@ - - - diff --git a/resources/assets/js/utils/ai.js b/resources/assets/js/utils/ai.js index b0cacf7db..3d16c5520 100644 --- a/resources/assets/js/utils/ai.js +++ b/resources/assets/js/utils/ai.js @@ -15,201 +15,6 @@ const AIBotMap = { wenxin: "文心一言", } -/** - * AI 系统配置表单与平台配置 - */ -const AISystemConfig = { - fields: [ - { - label: "API Key", - prop: "key", - type: "password" - }, - { - label: "模型列表", - prop: "models", - type: "textarea", - maxlength: 1000, - showWordLimit: 0.9, - placeholder: "一行一个模型名称", - functions: "使用默认模型列表" - }, - { - label: "默认模型", - prop: "model", - type: "model", - placeholder: "请选择默认模型", - tip: "可选数据来自模型列表" - }, - { - label: "Base URL", - prop: "base_url", - placeholder: "Enter base URL...", - tip: "API请求的基础URL路径,如果没有请留空" - }, - { - label: "使用代理", - prop: "agency", - placeholder: '支持 http 或 socks 代理', - tip: "例如:http://proxy.com 或 socks5://proxy.com" - }, - { - label: "Temperature", - prop: "temperature", - placeholder: "模型温度,低则保守,高则多样", - tip: "例如:0.7,范围:0-1,默认:0.7" - }, - { - label: "默认提示词", - prop: "system", - type: "textarea", - maxlength: 20000, - showWordLimit: 0.9, - placeholder: "请输入默认提示词", - tip: "例如:你是一个人开发的AI助手" - } - ], - aiList: { - openai: { - extraFields: [ - { - prop: "key", - placeholder: "OpenAI API Key", - link: "https://platform.openai.com/account/api-keys" - }, - { - prop: "models", - link: "https://platform.openai.com/docs/models", - } - ] - }, - claude: { - extraFields: [ - { - prop: "key", - placeholder: "Claude API Key", - link: "https://docs.anthropic.com/en/api/getting-started" - }, - { - prop: "models", - link: "https://docs.anthropic.com/en/docs/about-claude/models" - } - ] - }, - deepseek: { - extraFields: [ - { - prop: "key", - placeholder: "DeepSeek API Key", - link: "https://platform.deepseek.com/api_keys" - }, - { - prop: "models", - link: "https://api-docs.deepseek.com/zh-cn/quick_start/pricing" - } - ] - }, - gemini: { - extraFields: [ - { - prop: "key", - placeholder: "Gemini API Key", - link: "https://makersuite.google.com/app/apikey" - }, - { - prop: "models", - link: "https://ai.google.dev/models/gemini" - }, - { - prop: "agency", - placeholder: "仅支持 http 代理", - tip: "例如:http://proxy.com" - } - ] - }, - grok: { - extraFields: [ - { - prop: "key", - placeholder: "Grok API Key", - link: "https://docs.x.ai/docs/tutorial" - }, - { - prop: "models", - link: "https://docs.x.ai/docs/models" - } - ] - }, - ollama: { - extraFields: [ - { - prop: "key", - placeholder: "Ollama API Key", - tip: "如果没有请留空", - }, - { - prop: "models", - link: "https://ollama.com/models", - functions: "获取本地模型列表", - }, - { - prop: "base_url", - placeholder: "Enter base URL...", - tip: "API请求的URL路径", - sort: 1, - } - ] - }, - zhipu: { - extraFields: [ - { - prop: "key", - placeholder: "Zhipu API Key", - link: "https://bigmodel.cn/usercenter/apikeys" - }, - { - prop: "models", - link: "https://open.bigmodel.cn/dev/api" - } - ] - }, - qianwen: { - extraFields: [ - { - prop: "key", - placeholder: "Qianwen API Key", - link: "https://help.aliyun.com/zh/model-studio/developer-reference/get-api-key" - }, - { - prop: "models", - link: "https://help.aliyun.com/zh/model-studio/getting-started/models" - } - ] - }, - wenxin: { - extraFields: [ - { - prop: "key", - placeholder: "Wenxin API Key", - link: "https://console.bce.baidu.com/qianfan/ais/console/applicationConsole/application/v1" - }, - { - prop: "secret", - placeholder: "Wenxin Secret Key", - link: "https://console.bce.baidu.com/qianfan/ais/console/applicationConsole/application/v1", - type: "password", - label: "Secret Key", - after: "key" - }, - { - prop: "models", - link: "https://cloud.baidu.com/doc/WENXINWORKSHOP/s/Blfmc9dlf" - } - ] - } - } -} - /** * 即时消息生成系统提示词 */ @@ -417,7 +222,6 @@ const AINormalizeJsonContent = (content) => { export { AIBotMap, - AISystemConfig, MESSAGE_AI_SYSTEM_PROMPT, TASK_AI_SYSTEM_PROMPT, PROJECT_AI_SYSTEM_PROMPT,