diff --git a/src/renderer/src/store/thunk/messageThunk.ts b/src/renderer/src/store/thunk/messageThunk.ts index 6678ae87d9..79a2c79eea 100644 --- a/src/renderer/src/store/thunk/messageThunk.ts +++ b/src/renderer/src/store/thunk/messageThunk.ts @@ -1164,16 +1164,31 @@ export const resendMessageThunk = const messagesToUpdateInRedux: { topicId: string; messageId: string; updates: Partial }[] = [] // 先处理已有的重传 - for (const originalMsg of assistantMessagesToReset) { + if (assistantMessagesToReset.length === 1 && !userMessageToResend?.mentions?.length) { + // 单条消息无mention时使用助手模型 + const originalMsg = assistantMessagesToReset[0] const blockIdsToDelete = [...(originalMsg.blocks || [])] const resetMsg = resetAssistantMessage(originalMsg, { status: AssistantMessageStatus.PENDING, - updatedAt: new Date().toISOString() + updatedAt: new Date().toISOString(), + model: assistant.model }) resetDataList.push(resetMsg) allBlockIdsToDelete.push(...blockIdsToDelete) messagesToUpdateInRedux.push({ topicId, messageId: resetMsg.id, updates: resetMsg }) + } else { + for (const originalMsg of assistantMessagesToReset) { + const blockIdsToDelete = [...(originalMsg.blocks || [])] + const resetMsg = resetAssistantMessage(originalMsg, { + status: AssistantMessageStatus.PENDING, + updatedAt: new Date().toISOString() + }) + + resetDataList.push(resetMsg) + allBlockIdsToDelete.push(...blockIdsToDelete) + messagesToUpdateInRedux.push({ topicId, messageId: resetMsg.id, updates: resetMsg }) + } } // 再处理新的重传(用户消息提及,但是现有助手消息中不存在提及的模型)