From 9f73270f0850d243d54ef5266ea6132bf08a351e Mon Sep 17 00:00:00 2001 From: Soulter <905617992@qq.com> Date: Mon, 31 Aug 2026 12:03:55 +0800 Subject: [PATCH 01/24] refactor(dashboard): productize AI configuration --- astrbot/core/config/default.py | 5 + .../mdi-subset/materialdesignicons-subset.css | 18 +- .../materialdesignicons-webfont-subset.woff | Bin 18820 -> 19104 bytes .../materialdesignicons-webfont-subset.woff2 | Bin 15132 -> 15376 bytes .../src/components/config/AiConfigPanel.vue | 597 ++++++++++++++++++ .../config/AstrBotCoreConfigWrapper.vue | 443 ++++++++++--- .../i18n/locales/en-US/features/config.json | 65 ++ .../i18n/locales/ru-RU/features/config.json | 65 ++ .../i18n/locales/zh-CN/features/config.json | 65 ++ dashboard/src/views/ConfigPage.vue | 72 ++- 10 files changed, 1229 insertions(+), 101 deletions(-) create mode 100644 dashboard/src/components/config/AiConfigPanel.vue diff --git a/astrbot/core/config/default.py b/astrbot/core/config/default.py index 1055723ed7..dec53cdd53 100644 --- a/astrbot/core/config/default.py +++ b/astrbot/core/config/default.py @@ -3294,6 +3294,7 @@ "agent_runner.config.dify_api_key": { "description": "API Key", "type": "string", + "secret": True, }, "agent_runner.config.dify_api_base": { "description": "API Base URL", @@ -3332,6 +3333,7 @@ "agent_runner.config.coze_api_key": { "description": "API Key", "type": "string", + "secret": True, }, "agent_runner.config.bot_id": { "description": "Bot ID", @@ -3371,6 +3373,7 @@ "agent_runner.config.dashscope_api_key": { "description": "API Key", "type": "string", + "secret": True, }, "agent_runner.config.dashscope_app_id": { "description": "应用 ID", @@ -3419,10 +3422,12 @@ "agent_runner.config.deerflow_api_key": { "description": "API Key", "type": "string", + "secret": True, }, "agent_runner.config.deerflow_auth_header": { "description": "Authorization Header", "type": "string", + "secret": True, }, "agent_runner.config.deerflow_assistant_id": { "description": "Assistant ID", diff --git a/dashboard/src/assets/mdi-subset/materialdesignicons-subset.css b/dashboard/src/assets/mdi-subset/materialdesignicons-subset.css index c4681523a1..ff304c5c95 100644 --- a/dashboard/src/assets/mdi-subset/materialdesignicons-subset.css +++ b/dashboard/src/assets/mdi-subset/materialdesignicons-subset.css @@ -1,4 +1,4 @@ -/* Auto-generated MDI subset – 269 icons */ +/* Auto-generated MDI subset – 273 icons */ /* Do not edit manually. Run: pnpm run subset-icons */ @font-face { @@ -96,6 +96,10 @@ content: "\F19B2"; } +.mdi-auto-fix::before { + content: "\F0068"; +} + .mdi-backup-restore::before { content: "\F006F"; } @@ -680,6 +684,10 @@ content: "\F0349"; } +.mdi-magnify-close::before { + content: "\F0980"; +} + .mdi-memory::before { content: "\F035B"; } @@ -888,6 +896,10 @@ content: "\F16A7"; } +.mdi-robot-off-outline::before { + content: "\F167B"; +} + .mdi-robot-outline::before { content: "\F167A"; } @@ -984,6 +996,10 @@ content: "\F0721"; } +.mdi-swap-horizontal::before { + content: "\F04E1"; +} + .mdi-sync::before { content: "\F04E6"; } diff --git a/dashboard/src/assets/mdi-subset/materialdesignicons-webfont-subset.woff b/dashboard/src/assets/mdi-subset/materialdesignicons-webfont-subset.woff index 22430a20689adc7f1dc503b8651c59a47a1b25c7..c1994b8b243bafc28665dcec432c31d9da350ed5 100644 GIT binary patch delta 18727 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%0AQeI8O&#kg{~v~quUotujO$~iIq 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 WAm#!>28RD&J_7(6Cjrot|44;60x|;t delta 18484 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 z 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 literal 15132 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 K>;xRASB@Hve) +
+
+
+

{{ tm('aiSettings.title') }}

+

{{ currentRunner.summary }}

+
+ +
+ + + + + + +
+
+ + + +
+ mdi-robot-off-outline +
+
{{ tm('aiSettings.disabled.title') }}
+
{{ tm('aiSettings.disabled.subtitle') }}
+
+
+ + + + + {{ tm('aiSettings.runnerDialog.title') }} + + +

+ {{ tm('aiSettings.runnerDialog.subtitle') }} +

+ +
+ +
+ +
+ mdi-alert-circle-outline + {{ tm('aiSettings.runnerDialog.warning') }} +
+
+ + + + {{ tm('buttons.cancel') }} + + + {{ tm('aiSettings.runnerDialog.confirm') }} + + +
+
+
+ + + + + diff --git a/dashboard/src/components/config/AstrBotCoreConfigWrapper.vue b/dashboard/src/components/config/AstrBotCoreConfigWrapper.vue index b485a783fe..f86c78e586 100644 --- a/dashboard/src/components/config/AstrBotCoreConfigWrapper.vue +++ b/dashboard/src/components/config/AstrBotCoreConfigWrapper.vue @@ -1,54 +1,95 @@ - diff --git a/dashboard/src/i18n/locales/en-US/features/config.json b/dashboard/src/i18n/locales/en-US/features/config.json index 3d5e52feec..5fb1413696 100644 --- a/dashboard/src/i18n/locales/en-US/features/config.json +++ b/dashboard/src/i18n/locales/en-US/features/config.json @@ -45,6 +45,71 @@ "notification": "Notification Settings", "moreConfig": "More Settings" }, + "aiSettings": { + "title": "AI", + "enable": "Enable AI", + "more": "More actions", + "changeRunner": "Change execution mode", + "localSettingsTitle": "AI Settings", + "settingsSuffix": "Settings", + "tabs": { + "model": "Model", + "persona": "Persona", + "capabilities": "Capabilities", + "advanced": "Advanced" + }, + "groups": { + "model": "Model", + "modelHint": "Choose the chat models and retry policy used by built-in AI.", + "execution": "Execution", + "executionHint": "Configure the tool-call loop and execution process.", + "media": "Media Models", + "mediaHint": "Configure image understanding, speech-to-text, and text-to-speech.", + "behavior": "Response Behavior", + "behaviorHint": "These settings apply to every execution mode in this profile." + }, + "common": { + "title": "Common Settings", + "subtitle": "These settings remain unchanged when the execution mode changes." + }, + "disabled": { + "title": "AI is disabled", + "subtitle": "Enable AI to process messages that require a model." + }, + "runnerDialog": { + "title": "Change Execution Mode", + "subtitle": "Change this only when connecting an external AI application. Built-in AI is suitable for most users.", + "warning": "Switching loads the new mode's defaults and discards the current execution parameters.", + "confirm": "Use This Mode" + }, + "runners": { + "local": { + "title": "Built-in AI", + "summary": "Configure models, personas, and capabilities.", + "description": "Use AstrBot's built-in AI with models, personas, knowledge bases, and tools." + }, + "dify": { + "title": "Dify", + "summary": "AI conversations are currently handled by a Dify application.", + "description": "Connect a Dify application and configure its access parameters." + }, + "coze": { + "title": "Coze", + "summary": "AI conversations are currently handled by a Coze Bot.", + "description": "Connect a Coze Bot and configure its access parameters." + }, + "dashscope": { + "title": "Alibaba Cloud Model Studio", + "summary": "AI conversations are currently handled by a Model Studio application.", + "description": "Connect an Alibaba Cloud Model Studio application and configure its access parameters." + }, + "deerflow": { + "title": "DeerFlow", + "summary": "AI conversations are currently handled by DeerFlow.", + "description": "Connect DeerFlow and configure its runtime parameters." + } + } + }, "general": { "botName": "Bot Name", "language": "Interface Language", diff --git a/dashboard/src/i18n/locales/ru-RU/features/config.json b/dashboard/src/i18n/locales/ru-RU/features/config.json index 1da815bc57..35ea647eac 100644 --- a/dashboard/src/i18n/locales/ru-RU/features/config.json +++ b/dashboard/src/i18n/locales/ru-RU/features/config.json @@ -45,6 +45,71 @@ "notification": "Уведомления", "moreConfig": "Дополнительные настройки" }, + "aiSettings": { + "title": "ИИ", + "enable": "Включить ИИ", + "more": "Другие действия", + "changeRunner": "Изменить режим выполнения", + "localSettingsTitle": "Настройки ИИ", + "settingsSuffix": "Настройки", + "tabs": { + "model": "Модель", + "persona": "Персона", + "capabilities": "Возможности", + "advanced": "Расширенные" + }, + "groups": { + "model": "Модель", + "modelHint": "Выберите модели чата и стратегию повторных попыток для встроенного ИИ.", + "execution": "Выполнение", + "executionHint": "Настройте цикл вызова инструментов и процесс выполнения.", + "media": "Мультимедийные модели", + "mediaHint": "Настройте распознавание изображений, речи и синтез речи.", + "behavior": "Поведение ответов", + "behaviorHint": "Эти настройки применяются ко всем режимам выполнения в профиле." + }, + "common": { + "title": "Общие настройки", + "subtitle": "Эти настройки не меняются при смене режима выполнения." + }, + "disabled": { + "title": "ИИ отключён", + "subtitle": "Включите ИИ для обработки сообщений с помощью модели." + }, + "runnerDialog": { + "title": "Изменить режим выполнения", + "subtitle": "Изменяйте этот параметр только при подключении внешнего ИИ-приложения. Для большинства пользователей подходит встроенный ИИ.", + "warning": "При переключении будут загружены настройки нового режима, а текущие параметры выполнения будут удалены.", + "confirm": "Использовать режим" + }, + "runners": { + "local": { + "title": "Встроенный ИИ", + "summary": "Настройте модели, персоны и возможности.", + "description": "Встроенный ИИ AstrBot поддерживает модели, персоны, базы знаний и инструменты." + }, + "dify": { + "title": "Dify", + "summary": "Диалоги ИИ обрабатываются приложением Dify.", + "description": "Подключите приложение Dify и настройте параметры доступа." + }, + "coze": { + "title": "Coze", + "summary": "Диалоги ИИ обрабатываются ботом Coze.", + "description": "Подключите Coze Bot и настройте параметры доступа." + }, + "dashscope": { + "title": "Alibaba Cloud Model Studio", + "summary": "Диалоги ИИ обрабатываются приложением Model Studio.", + "description": "Подключите приложение Model Studio и настройте параметры доступа." + }, + "deerflow": { + "title": "DeerFlow", + "summary": "Диалоги ИИ обрабатываются DeerFlow.", + "description": "Подключите DeerFlow и настройте параметры выполнения." + } + } + }, "general": { "botName": "Имя бота", "language": "Язык интерфейса", diff --git a/dashboard/src/i18n/locales/zh-CN/features/config.json b/dashboard/src/i18n/locales/zh-CN/features/config.json index 3eb5fc265d..25e9e7475e 100644 --- a/dashboard/src/i18n/locales/zh-CN/features/config.json +++ b/dashboard/src/i18n/locales/zh-CN/features/config.json @@ -45,6 +45,71 @@ "notification": "通知设置", "moreConfig": "更多配置" }, + "aiSettings": { + "title": "AI", + "enable": "启用 AI", + "more": "更多操作", + "changeRunner": "更换执行方式", + "localSettingsTitle": "AI 设置", + "settingsSuffix": "设置", + "tabs": { + "model": "模型", + "persona": "人格", + "capabilities": "能力", + "advanced": "高级" + }, + "groups": { + "model": "模型", + "modelHint": "选择内置 AI 使用的对话模型和失败重试策略。", + "execution": "执行设置", + "executionHint": "配置工具调用循环和执行过程。", + "media": "多媒体模型", + "mediaHint": "配置图片理解、语音转文字和文字转语音。", + "behavior": "回复行为", + "behaviorHint": "这些设置适用于当前配置文件中的所有执行方式。" + }, + "common": { + "title": "通用设置", + "subtitle": "这些设置不随执行方式切换。" + }, + "disabled": { + "title": "AI 已停用", + "subtitle": "启用后才会处理需要模型参与的消息。" + }, + "runnerDialog": { + "title": "更换执行方式", + "subtitle": "只有在接入外部 AI 应用时才需要更改。大多数用户使用内置 AI 即可。", + "warning": "切换后会使用新执行方式的默认配置,当前执行参数不会保留。", + "confirm": "使用此方式" + }, + "runners": { + "local": { + "title": "内置 AI", + "summary": "配置模型、人格和能力。", + "description": "使用 AstrBot 内置 AI,支持模型、人格、知识库和工具能力。" + }, + "dify": { + "title": "Dify", + "summary": "当前由 Dify 应用处理 AI 对话。", + "description": "连接 Dify 应用并配置它的访问参数。" + }, + "coze": { + "title": "Coze", + "summary": "当前由 Coze Bot 处理 AI 对话。", + "description": "连接 Coze Bot 并配置它的访问参数。" + }, + "dashscope": { + "title": "阿里云百炼", + "summary": "当前由阿里云百炼应用处理 AI 对话。", + "description": "连接阿里云百炼应用并配置它的访问参数。" + }, + "deerflow": { + "title": "DeerFlow", + "summary": "当前由 DeerFlow 处理 AI 对话。", + "description": "连接 DeerFlow 服务并配置它的运行参数。" + } + } + }, "general": { "botName": "机器人名称", "language": "界面语言", diff --git a/dashboard/src/views/ConfigPage.vue b/dashboard/src/views/ConfigPage.vue index fcde3dd460..6fced9d630 100644 --- a/dashboard/src/views/ConfigPage.vue +++ b/dashboard/src/views/ConfigPage.vue @@ -1,13 +1,11 @@