diff --git a/src/renderer/src/pages/home/Inputbar/Inputbar.tsx b/src/renderer/src/pages/home/Inputbar/Inputbar.tsx index d97a0164e1..84dfc5db2c 100644 --- a/src/renderer/src/pages/home/Inputbar/Inputbar.tsx +++ b/src/renderer/src/pages/home/Inputbar/Inputbar.tsx @@ -241,16 +241,12 @@ const Inputbar: FC = ({ assistant: _assistant, setActiveTopic, topic }) = baseUserMessage.mentions = mentionedModels } - const assistantWithTopicPrompt = topic.prompt - ? { ...assistant, prompt: `${assistant.prompt}\n${topic.prompt}` } - : assistant - baseUserMessage.usage = await estimateUserPromptUsage(baseUserMessage) const { message, blocks } = getUserMessage(baseUserMessage) message.traceId = parent?.spanContext().traceId - dispatch(_sendMessage(message, blocks, assistantWithTopicPrompt, topic.id)) + dispatch(_sendMessage(message, blocks, assistant, topic.id)) // Clear input setText('') diff --git a/src/renderer/src/pages/home/Messages/Message.tsx b/src/renderer/src/pages/home/Messages/Message.tsx index 4f7c1fd1c5..12a1079b3d 100644 --- a/src/renderer/src/pages/home/Messages/Message.tsx +++ b/src/renderer/src/pages/home/Messages/Message.tsx @@ -100,11 +100,8 @@ const MessageItem: FC = ({ const handleEditResend = useCallback( async (blocks: MessageBlock[]) => { - const assistantWithTopicPrompt = topic.prompt - ? { ...assistant, prompt: `${assistant.prompt}\n${topic.prompt}` } - : assistant try { - await resendUserMessageWithEdit(message, blocks, assistantWithTopicPrompt) + await resendUserMessageWithEdit(message, blocks, assistant) stopEditing() } catch (error) { logger.error('Failed to resend message:', error as Error) diff --git a/src/renderer/src/pages/home/Messages/MessageMenubar.tsx b/src/renderer/src/pages/home/Messages/MessageMenubar.tsx index 4d99319132..0c048c4c44 100644 --- a/src/renderer/src/pages/home/Messages/MessageMenubar.tsx +++ b/src/renderer/src/pages/home/Messages/MessageMenubar.tsx @@ -150,10 +150,7 @@ const MessageMenubar: FC = (props) => { const handleResendUserMessage = useCallback( async (messageUpdate?: Message) => { if (!loading) { - const assistantWithTopicPrompt = topic.prompt - ? { ...assistant, prompt: `${assistant.prompt}\n${topic.prompt}` } - : assistant - await resendMessage(messageUpdate ?? message, assistantWithTopicPrompt) + await resendMessage(messageUpdate ?? message, assistant) } }, [assistant, loading, message, resendMessage, topic.prompt] @@ -379,12 +376,8 @@ const MessageMenubar: FC = (props) => { // const _message = resetAssistantMessage(message, selectedModel) // editMessage(message.id, { ..._message }) // REMOVED - const assistantWithTopicPrompt = topic.prompt - ? { ...assistant, prompt: `${assistant.prompt}\n${topic.prompt}` } - : assistant - // Call the function from the hook - regenerateAssistantMessage(message, assistantWithTopicPrompt) + regenerateAssistantMessage(message, assistant) } // 按条件筛选能够提及的模型,该函数仅在isAssistantMessage时会用到 diff --git a/src/renderer/src/store/thunk/messageThunk.ts b/src/renderer/src/store/thunk/messageThunk.ts index c8284eb31f..039fdfd648 100644 --- a/src/renderer/src/store/thunk/messageThunk.ts +++ b/src/renderer/src/store/thunk/messageThunk.ts @@ -288,14 +288,18 @@ const dispatchMultiModelResponses = async ( } // --- End Helper Function --- - +// 发送和处理助手响应的实现函数,话题提示词在此拼接 const fetchAndProcessAssistantResponseImpl = async ( dispatch: AppDispatch, getState: () => RootState, topicId: string, - assistant: Assistant, + origAssistant: Assistant, assistantMessage: Message // Pass the prepared assistant message (new or reset) ) => { + const topic = origAssistant.topics.find((t) => t.id === topicId) + const assistant = topic?.prompt + ? { ...origAssistant, prompt: `${origAssistant.prompt}\n${topic.prompt}` } + : origAssistant const assistantMsgId = assistantMessage.id let callbacks: StreamProcessorCallbacks = {} try {