diff --git a/src/renderer/src/config/models.ts b/src/renderer/src/config/models.ts index bf5887ef..42e54743 100644 --- a/src/renderer/src/config/models.ts +++ b/src/renderer/src/config/models.ts @@ -173,7 +173,7 @@ export const TEXT_TO_IMAGE_REGEX = /flux|diffusion|stabilityai|sd-|dall|cogview| // Reasoning models export const REASONING_REGEX = - /^(o\d+(?:-[\w-]+)?|.*\b(?:reasoner|thinking)\b.*|.*-[rR]\d+.*|.*\bqwq(?:-[\w-]+)?\b.*|.*\bhunyuan-t1(?:-[\w-]+)?\b.*)$/i + /^(o\d+(?:-[\w-]+)?|.*\b(?:reasoner|thinking)\b.*|.*-[rR]\d+.*|.*\bqwq(?:-[\w-]+)?\b.*|.*\bhunyuan-t1(?:-[\w-]+)?\b.*|.*\bglm-zero-preview\b.*)$/i // Embedding models export const EMBEDDING_REGEX = diff --git a/src/renderer/src/utils/formats.ts b/src/renderer/src/utils/formats.ts index 5e67d547..4bf0afb8 100644 --- a/src/renderer/src/utils/formats.ts +++ b/src/renderer/src/utils/formats.ts @@ -1,4 +1,5 @@ import { isReasoningModel } from '@renderer/config/models' +import { getAssistantById } from '@renderer/services/AssistantService' import { Message } from '@renderer/types' export function escapeDollarNumber(text: string) { @@ -91,11 +92,8 @@ const glmZeroPreviewProcessor: ThoughtProcessor = { canProcess: (content: string, message?: Message) => { if (!message) return false - const model = message.model - if (!model || !isReasoningModel(model)) return false - const modelId = message.modelId || '' - const modelName = model.name || '' + const modelName = message.model?.name || '' const isGLMZeroPreview = modelId.toLowerCase().includes('glm-zero-preview') || modelName.toLowerCase().includes('glm-zero-preview') @@ -117,9 +115,6 @@ const thinkTagProcessor: ThoughtProcessor = { canProcess: (content: string, message?: Message) => { if (!message) return false - const model = message.model - if (!model || !isReasoningModel(model)) return false - return content.startsWith('') || content.includes('') }, process: (content: string) => { @@ -162,6 +157,15 @@ export function withMessageThought(message: Message) { return message } + const model = message.model + if (!model || !isReasoningModel(model)) return message + + const isClaude37Sonnet = model.id.includes('claude-3-7-sonnet') || model.id.includes('claude-3.7-sonnet') + if (isClaude37Sonnet) { + const assistant = getAssistantById(message.assistantId) + if (!assistant?.settings?.reasoning_effort) return message + } + const content = message.content.trim() const processors: ThoughtProcessor[] = [glmZeroPreviewProcessor, thinkTagProcessor]