From ffe7ebf711a8888a5814724ebcb344f272c19bf3 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Mon, 10 Feb 2025 19:49:30 +0900 Subject: [PATCH] =?UTF-8?q?perf:=20AI=E6=9C=BA=E5=99=A8=E4=BA=BA=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E5=A4=9A=E4=BC=9A=E8=AF=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Models/Setting.php | 6 +- app/Tasks/BotReceiveMsgTask.php | 3 + .../pages/manage/components/DialogWrapper.vue | 11 +- .../manage/setting/components/SystemAibot.vue | 103 +++++++---- resources/assets/js/store/utils.js | 175 +++++++++--------- 5 files changed, 176 insertions(+), 122 deletions(-) diff --git a/app/Models/Setting.php b/app/Models/Setting.php index 3f052eb2d..5897ca6cf 100644 --- a/app/Models/Setting.php +++ b/app/Models/Setting.php @@ -66,10 +66,14 @@ class Setting extends AbstractModel } $array = []; $aiList = ['openai', 'claude', 'deepseek', 'gemini', 'zhipu', 'qianwen', 'wenxin']; - $fieldList = ['key', 'model', 'base_url', 'agency', 'system', 'secret']; + $fieldList = ['key', 'model', 'base_url', 'agency', 'temperature', 'system', 'secret']; foreach ($aiList as $aiName) { foreach ($fieldList as $fieldName) { $key = $aiName . '_' . $fieldName; + if ($fieldName == 'temperature' && $value[$key]) { + $array[$key] = floatval(min(1, max(0, floatval($value[$key]) ?: 0.7))); + continue; + } $array[$key] = $value[$key] ?: match ($key) { 'openai_model' => 'gpt-4o-mini', 'claude_model' => 'claude-3-5-sonnet-latest', diff --git a/app/Tasks/BotReceiveMsgTask.php b/app/Tasks/BotReceiveMsgTask.php index 9d5721079..55eae8110 100644 --- a/app/Tasks/BotReceiveMsgTask.php +++ b/app/Tasks/BotReceiveMsgTask.php @@ -431,6 +431,9 @@ class BotReceiveMsgTask extends AbstractTask 'agency' => $setting[$type . '_agency'], 'server_url' => $serverUrl, ]; + if ($setting[$type . '_temperature']) { + $extras['temperature'] = floatval($setting[$type . '_temperature']); + } if ($msg->msg['model_name']) { $extras['model_name'] = $msg->msg['model_name']; } diff --git a/resources/assets/js/pages/manage/components/DialogWrapper.vue b/resources/assets/js/pages/manage/components/DialogWrapper.vue index 3339816cd..7a21cbb62 100644 --- a/resources/assets/js/pages/manage/components/DialogWrapper.vue +++ b/resources/assets/js/pages/manage/components/DialogWrapper.vue @@ -720,7 +720,7 @@ import touchclick from "../../../directives/touchclick"; import {languageList} from "../../../language"; import {isLocalResourcePath} from "../../../components/Replace/utils"; import emitter from "../../../store/events"; -import {AIModelList} from "../../../store/utils"; +import {AIModelLabel, AIModelList} from "../../../store/utils"; export default { name: "DialogWrapper", @@ -1847,8 +1847,11 @@ export default { quickLabel({key, label, config}) { if (key === '~ai-model-select') { const model = this.aiModelValue() - if (model) return model - if (config?.model) return config.model + if (model) { + label = AIModelLabel(this.dialogData.email, model) + } else if (config?.model) { + label = AIModelLabel(this.dialogData.email, config.model) + } } return label }, @@ -1915,7 +1918,7 @@ export default { if (!this.isAiBot) { return } - const list = AIModelList(this.dialogData.email).map(value => ({label: value, value: value})) + const list = AIModelList(this.dialogData.email) const configModel = item.config?.model if (configModel && !list.find(({value}) => value === configModel)) { list.unshift({label: configModel, value: configModel}) diff --git a/resources/assets/js/pages/manage/setting/components/SystemAibot.vue b/resources/assets/js/pages/manage/setting/components/SystemAibot.vue index 5f70c4d01..00e77fa47 100644 --- a/resources/assets/js/pages/manage/setting/components/SystemAibot.vue +++ b/resources/assets/js/pages/manage/setting/components/SystemAibot.vue @@ -18,16 +18,15 @@ type="password" :placeholder="$L(field.placeholder)"/> -