feat(翻译): 添加对Qwen MT模型翻译选项的特殊处理

添加对Qwen MT模型的支持,当助手类型为翻译时设置翻译选项。若目标语言不支持则抛出错误
This commit is contained in:
icarus 2025-08-29 19:36:40 +08:00
parent 9bde8b3cae
commit aaa51c435e

View File

@ -1,16 +1,19 @@
import { baseProviderIdSchema, customProviderIdSchema } from '@cherrystudio/ai-core/provider' import { baseProviderIdSchema, customProviderIdSchema } from '@cherrystudio/ai-core/provider'
import { isOpenAIModel, isSupportFlexServiceTierModel } from '@renderer/config/models' import { isOpenAIModel, isQwenMTModel, isSupportFlexServiceTierModel } from '@renderer/config/models'
import { isSupportServiceTierProvider } from '@renderer/config/providers' import { isSupportServiceTierProvider } from '@renderer/config/providers'
import { mapLanguageToQwenMTModel } from '@renderer/config/translate'
import { import {
Assistant, Assistant,
GroqServiceTiers, GroqServiceTiers,
isGroqServiceTier, isGroqServiceTier,
isOpenAIServiceTier, isOpenAIServiceTier,
isTranslateAssistant,
Model, Model,
OpenAIServiceTiers, OpenAIServiceTiers,
Provider, Provider,
SystemProviderIds SystemProviderIds
} from '@renderer/types' } from '@renderer/types'
import { t } from 'i18next'
import { getAiSdkProviderId } from '../provider/factory' import { getAiSdkProviderId } from '../provider/factory'
import { buildGeminiGenerateImageParams } from './image' import { buildGeminiGenerateImageParams } from './image'
@ -280,5 +283,22 @@ function buildGenericProviderOptions(
} }
} }
// 特殊处理 Qwen MT
if (isQwenMTModel(model)) {
if (isTranslateAssistant(assistant)) {
const targetLanguage = assistant.targetLanguage
const translationOptions = {
source_lang: 'auto',
target_lang: mapLanguageToQwenMTModel(targetLanguage)
} as const
if (!translationOptions.target_lang) {
throw new Error(t('translate.error.not_supported', { language: targetLanguage.value }))
}
providerOptions.translation_options = translationOptions
} else {
throw new Error(t('translate.error.chat_qwen_mt'))
}
}
return providerOptions return providerOptions
} }