From 281c545a8f949ac3a2ee86d2292138866bd67ff6 Mon Sep 17 00:00:00 2001 From: Phantom <59059173+EurFelux@users.noreply.github.com> Date: Wed, 6 Aug 2025 09:58:54 +0800 Subject: [PATCH] feat(model): support step models (#8853) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit feat(模型配置): 添加对Step系列模型的支持 添加Step-1o和Step-1v到视觉允许模型列表 新增isStepReasoningModel函数判断Step系列推理模型 --- src/renderer/src/config/models.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/renderer/src/config/models.ts b/src/renderer/src/config/models.ts index ba59c020c7..eebcaada43 100644 --- a/src/renderer/src/config/models.ts +++ b/src/renderer/src/config/models.ts @@ -191,7 +191,9 @@ const visionAllowedModels = [ `gemma3(?:-[\\w-]+)`, 'kimi-vl-a3b-thinking(?:-[\\w-]+)?', 'llama-guard-4(?:-[\\w-]+)?', - 'llama-4(?:-[\\w-]+)?' + 'llama-4(?:-[\\w-]+)?', + 'step-1o(?:.*vision)?', + 'step-1v(?:-[\\w-]+)?' ] const visionExcludedModels = [ @@ -2589,6 +2591,7 @@ export function isOpenAIWebSearchModel(model: Model): boolean { ) } +/** 用于判断是否支持控制思考,但不一定以reasoning_effort的方式 */ export function isSupportedThinkingTokenModel(model?: Model): boolean { if (!model) { return false @@ -2801,6 +2804,14 @@ export const isZhipuReasoningModel = (model?: Model): boolean => { return isSupportedThinkingTokenZhipuModel(model) || model.id.toLowerCase().includes('glm-z1') } +export const isStepReasoningModel = (model?: Model): boolean => { + if (!model) { + return false + } + const baseName = getLowerBaseModelName(model.id) + return baseName.includes('step-3') || baseName.includes('step-r1-v-mini') +} + export function isReasoningModel(model?: Model): boolean { if (!model || isEmbeddingModel(model) || isRerankModel(model) || isTextToImageModel(model)) { return false @@ -2828,6 +2839,7 @@ export function isReasoningModel(model?: Model): boolean { isHunyuanReasoningModel(model) || isPerplexityReasoningModel(model) || isZhipuReasoningModel(model) || + isStepReasoningModel(model) || model.id.toLowerCase().includes('magistral') || model.id.toLowerCase().includes('minimax-m1') || model.id.toLowerCase().includes('pangu-pro-moe')