From 973ece9eb96c1948d8b39ee0ab741289a166390a Mon Sep 17 00:00:00 2001 From: Phantom <59059173+EurFelux@users.noreply.github.com> Date: Wed, 20 Aug 2025 10:07:10 +0800 Subject: [PATCH] feat: use quick model to detect translate language (#9315) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * refactor(语言检测): 移除翻译模型依赖,改用快速或默认模型 * feat(i18n): 添加希腊语翻译支持 * fix(i18n): 更新i18n 统一将翻译模型提示改为快速模型提示,优化多语言文件中的描述 * Revert "feat(i18n): 添加希腊语翻译支持" This reverts commit 42613cb2e21da2a6cb3e920b09cfa57f7784ac58. --- src/renderer/src/i18n/locales/en-us.json | 2 +- src/renderer/src/i18n/locales/ja-jp.json | 2 +- src/renderer/src/i18n/locales/ru-ru.json | 2 +- src/renderer/src/i18n/locales/zh-cn.json | 2 +- src/renderer/src/i18n/locales/zh-tw.json | 2 +- src/renderer/src/i18n/translate/el-gr.json | 4 +++- src/renderer/src/i18n/translate/es-es.json | 4 +++- src/renderer/src/i18n/translate/fr-fr.json | 4 +++- src/renderer/src/i18n/translate/pt-pt.json | 4 +++- src/renderer/src/services/ApiService.ts | 8 +++----- 10 files changed, 20 insertions(+), 14 deletions(-) diff --git a/src/renderer/src/i18n/locales/en-us.json b/src/renderer/src/i18n/locales/en-us.json index 5d37e8a98e..36f5e61b16 100644 --- a/src/renderer/src/i18n/locales/en-us.json +++ b/src/renderer/src/i18n/locales/en-us.json @@ -3689,7 +3689,7 @@ }, "label": "Automatic detection method", "llm": { - "tip": "Using a translation model for language detection consumes a small number of tokens. (QwenMT does not support language detection and will automatically fall back to the default assistant model.)" + "tip": "Using the quick model for language detection consumes fewer tokens." }, "placeholder": "Select automatic detection method", "tip": "Method used when automatically detecting the input language" diff --git a/src/renderer/src/i18n/locales/ja-jp.json b/src/renderer/src/i18n/locales/ja-jp.json index 1a38ee0bd2..c386c301ac 100644 --- a/src/renderer/src/i18n/locales/ja-jp.json +++ b/src/renderer/src/i18n/locales/ja-jp.json @@ -3689,7 +3689,7 @@ }, "label": "自動検出方法", "llm": { - "tip": "翻訳モデルを使用して言語検出を行うと、少量のトークンを消費します。(QwenMTは言語検出をサポートしておらず、自動的にデフォルトのアシスタントモデルにフォールバックします)" + "tip": "高速モデルを使用して言語検出を行い、少量のトークンを消費します。" }, "placeholder": "自動検出方法を選択してください", "tip": "入力言語を自動検出する際に使用する方法" diff --git a/src/renderer/src/i18n/locales/ru-ru.json b/src/renderer/src/i18n/locales/ru-ru.json index 7ea239bc38..aed6241d8d 100644 --- a/src/renderer/src/i18n/locales/ru-ru.json +++ b/src/renderer/src/i18n/locales/ru-ru.json @@ -3689,7 +3689,7 @@ }, "label": "Автоматический метод обнаружения", "llm": { - "tip": "Использование модели перевода для определения языка требует небольшого количества токенов. (QwenMT не поддерживает определение языка и автоматически возвращается к модели помощника по умолчанию)" + "tip": "Использование быстрой модели для определения языка с минимальным расходом токенов." }, "placeholder": "Выберите метод автоматического определения", "tip": "Метод, используемый при автоматическом определении языка ввода" diff --git a/src/renderer/src/i18n/locales/zh-cn.json b/src/renderer/src/i18n/locales/zh-cn.json index 3901a2f5c2..60b5a544dc 100644 --- a/src/renderer/src/i18n/locales/zh-cn.json +++ b/src/renderer/src/i18n/locales/zh-cn.json @@ -3689,7 +3689,7 @@ }, "label": "自动检测方法", "llm": { - "tip": "使用翻译模型进行语言检测,消耗少量token。(QwenMT不支持进行语言检测,会自动回退到默认助手模型)" + "tip": "使用快速模型进行语言检测,消耗少量token。" }, "placeholder": "选择自动检测方法", "tip": "自动检测输入语言时使用的方法" diff --git a/src/renderer/src/i18n/locales/zh-tw.json b/src/renderer/src/i18n/locales/zh-tw.json index e43e91249a..8487289fdf 100644 --- a/src/renderer/src/i18n/locales/zh-tw.json +++ b/src/renderer/src/i18n/locales/zh-tw.json @@ -3689,7 +3689,7 @@ }, "label": "自動檢測方法", "llm": { - "tip": "使用翻譯模型進行語言檢測,消耗少量token。(QwenMT不支持進行語言檢測,會自動回退到預設助手模型)" + "tip": "使用快速模型進行語言檢測,消耗少量token。" }, "placeholder": "選擇自動偵測方法", "tip": "自動檢測輸入語言時使用的方法" diff --git a/src/renderer/src/i18n/translate/el-gr.json b/src/renderer/src/i18n/translate/el-gr.json index 161906ea26..9cf801e5ef 100644 --- a/src/renderer/src/i18n/translate/el-gr.json +++ b/src/renderer/src/i18n/translate/el-gr.json @@ -654,6 +654,8 @@ "cli_tool": "Εργαλείο CLI", "cli_tool_placeholder": "Επιλέξτε το CLI εργαλείο που θέλετε να χρησιμοποιήσετε", "description": "Εκκίνηση γρήγορα πολλών εργαλείων CLI κώδικα, για αύξηση της αποδοτικότητας ανάπτυξης", + "env_vars_help": "Εισαγάγετε προσαρμοσμένες μεταβλητές περιβάλλοντος (μία ανά γραμμή, με τη μορφή: KEY=value)", + "environment_variables": "Μεταβλητές περιβάλλοντος", "folder_placeholder": "Επιλέξτε κατάλογο εργασίας", "install_bun": "Εγκατάσταση Bun", "installing_bun": "Εγκατάσταση...", @@ -3687,7 +3689,7 @@ }, "label": "Αυτόματη μέθοδος ανίχνευσης", "llm": { - "tip": "Χρησιμοποιήστε ένα μοντέλο μετάφρασης για την ανίχνευση γλώσσας, καταναλώνοντας ελάχιστα token. (Το QwenMT δεν υποστηρίζει την ανίχνευση γλώσσας και επιστρέφει αυτόματα στο προεπιλεγμένο μοντέλο βοηθού)" + "tip": "Χρησιμοποιήστε γρήγορο μοντέλο για την ανίχνευση γλώσσας, με ελάχιστη κατανάλωση token." }, "placeholder": "Επιλέξτε τη μέθοδο αυτόματης ανίχνευσης", "tip": "Η μέθοδος που χρησιμοποιείται για την αυτόματη ανίχνευση της γλώσσας εισόδου" diff --git a/src/renderer/src/i18n/translate/es-es.json b/src/renderer/src/i18n/translate/es-es.json index 8957cf1f42..6e1a1c4d59 100644 --- a/src/renderer/src/i18n/translate/es-es.json +++ b/src/renderer/src/i18n/translate/es-es.json @@ -654,6 +654,8 @@ "cli_tool": "Herramienta de línea de comandos", "cli_tool_placeholder": "Seleccione la herramienta de línea de comandos que desea utilizar", "description": "Inicia rápidamente múltiples herramientas de línea de comandos para código, aumentando la eficiencia del desarrollo", + "env_vars_help": "Introduzca variables de entorno personalizadas (una por línea, formato: CLAVE=valor)", + "environment_variables": "Variables de entorno", "folder_placeholder": "Seleccionar directorio de trabajo", "install_bun": "Instalar Bun", "installing_bun": "Instalando...", @@ -3687,7 +3689,7 @@ }, "label": "Método de detección automática", "llm": { - "tip": "Utiliza el modelo de traducción para la detección de idioma, lo que consume una pequeña cantidad de tokens. (QwenMT no admite la detección de idioma y automáticamente retrocede al modelo de asistente predeterminado)" + "tip": "Utiliza un modelo rápido para la detección de idioma, consumiendo pocos tokens." }, "placeholder": "Seleccionar método de detección automática", "tip": "Método utilizado para detectar automáticamente el idioma de entrada" diff --git a/src/renderer/src/i18n/translate/fr-fr.json b/src/renderer/src/i18n/translate/fr-fr.json index 32326df24c..570e600437 100644 --- a/src/renderer/src/i18n/translate/fr-fr.json +++ b/src/renderer/src/i18n/translate/fr-fr.json @@ -654,6 +654,8 @@ "cli_tool": "Outil CLI", "cli_tool_placeholder": "Sélectionnez l'outil CLI à utiliser", "description": "Lancer rapidement plusieurs outils CLI de code pour améliorer l'efficacité du développement", + "env_vars_help": "Saisissez les variables d'environnement personnalisées (une par ligne, format : KEY=value)", + "environment_variables": "variables d'environnement", "folder_placeholder": "Sélectionner le répertoire de travail", "install_bun": "Installer Bun", "installing_bun": "Installation en cours...", @@ -3687,7 +3689,7 @@ }, "label": "Méthode de détection automatique", "llm": { - "tip": "Utiliser un modèle de traduction pour la détection de langue, ce qui consomme peu de jetons. (QwenMT ne prend pas en charge la détection de langue et revient automatiquement au modèle assistant par défaut.)" + "tip": "Utilisation d'un modèle rapide pour la détection linguistique, consommant peu de jetons." }, "placeholder": "Sélectionner la méthode de détection automatique", "tip": "Méthode utilisée pour la détection automatique de la langue d'entrée" diff --git a/src/renderer/src/i18n/translate/pt-pt.json b/src/renderer/src/i18n/translate/pt-pt.json index c76b3e630b..20cae5287a 100644 --- a/src/renderer/src/i18n/translate/pt-pt.json +++ b/src/renderer/src/i18n/translate/pt-pt.json @@ -654,6 +654,8 @@ "cli_tool": "Ferramenta de linha de comando", "cli_tool_placeholder": "Selecione a ferramenta de linha de comando a ser utilizada", "description": "Inicie rapidamente várias ferramentas de linha de comando de código, aumentando a eficiência do desenvolvimento", + "env_vars_help": "Insira variáveis de ambiente personalizadas (uma por linha, formato: CHAVE=valor)", + "environment_variables": "variáveis de ambiente", "folder_placeholder": "Selecionar diretório de trabalho", "install_bun": "Instalar o Bun", "installing_bun": "Instalando...", @@ -3687,7 +3689,7 @@ }, "label": "Método de detecção automática", "llm": { - "tip": "Usar o modelo de tradução para detecção de idioma consome uma pequena quantidade de tokens. (O QwenMT não suporta detecção de idioma e reverterá automaticamente para o modelo assistente padrão)" + "tip": "Usar modelo rápido para detecção de idioma, consumindo poucos tokens." }, "placeholder": "Escolha o método de detecção automática", "tip": "Método utilizado para detecção automática do idioma de entrada" diff --git a/src/renderer/src/services/ApiService.ts b/src/renderer/src/services/ApiService.ts index 2cddbcee2c..c01769ae84 100644 --- a/src/renderer/src/services/ApiService.ts +++ b/src/renderer/src/services/ApiService.ts @@ -65,8 +65,7 @@ import { getDefaultAssistant, getDefaultModel, getProviderByModel, - getQuickModel, - getTranslateModel + getQuickModel } from './AssistantService' import { processKnowledgeSearch } from './KnowledgeService' import { MemoryProcessor } from './MemoryProcessor' @@ -621,14 +620,13 @@ export async function fetchLanguageDetection({ text, onResponse }: FetchLanguage const listLang = translateLanguageOptions.map((item) => item.langCode) const listLangText = JSON.stringify(listLang) - let model = getTranslateModel() + const model = getQuickModel() || getDefaultModel() if (!model) { throw new Error(i18n.t('error.model.not_exists')) } if (isQwenMTModel(model)) { - logger.info('QwenMT cannot be used for language detection. Fallback to default model.') - model = getDefaultModel() + logger.info('QwenMT cannot be used for language detection.') if (isQwenMTModel(model)) { throw new Error(i18n.t('translate.error.detect.qwen_mt')) }