From f8a22b5e55066adafe5f1975046bd9ca60f143e1 Mon Sep 17 00:00:00 2001 From: MyPrototypeWhat Date: Thu, 4 Sep 2025 13:05:56 +0800 Subject: [PATCH] feat: Update message handling to include optional uiMessages parameter - Modify BaseParams type to make uiMessages optional. - Refactor message preparation in HomeWindow and ActionUtils to handle modelMessages and uiMessages separately. - Ensure compatibility with updated message structures in fetchChatCompletion calls. --- src/renderer/src/types/index.ts | 2 +- src/renderer/src/windows/mini/home/HomeWindow.tsx | 8 ++++++-- .../windows/selection/action/components/ActionUtils.ts | 5 +++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/renderer/src/types/index.ts b/src/renderer/src/types/index.ts index a9755c2686..4d3046775b 100644 --- a/src/renderer/src/types/index.ts +++ b/src/renderer/src/types/index.ts @@ -1307,7 +1307,7 @@ type BaseParams = { options?: FetchChatCompletionOptions onChunkReceived: (chunk: Chunk) => void topicId?: string // 添加 topicId 参数 - uiMessages: Message[] + uiMessages?: Message[] } type MessagesParams = BaseParams & { diff --git a/src/renderer/src/windows/mini/home/HomeWindow.tsx b/src/renderer/src/windows/mini/home/HomeWindow.tsx index 28313e2a83..ca654d9781 100644 --- a/src/renderer/src/windows/mini/home/HomeWindow.tsx +++ b/src/renderer/src/windows/mini/home/HomeWindow.tsx @@ -266,13 +266,17 @@ const HomeWindow: FC<{ draggable?: boolean }> = ({ draggable = true }) => { newAssistant.webSearchProviderId = undefined newAssistant.mcpServers = undefined newAssistant.knowledge_bases = undefined - const llmMessages = await ConversationService.prepareMessagesForModel(messagesForContext, newAssistant) + const { modelMessages, uiMessages } = await ConversationService.prepareMessagesForModel( + messagesForContext, + newAssistant + ) await fetchChatCompletion({ - messages: llmMessages, + messages: modelMessages, assistant: newAssistant, options: {}, topicId, + uiMessages: uiMessages, onChunkReceived: (chunk: Chunk) => { switch (chunk.type) { case ChunkType.THINKING_START: diff --git a/src/renderer/src/windows/selection/action/components/ActionUtils.ts b/src/renderer/src/windows/selection/action/components/ActionUtils.ts index 6e3b901155..7ef1166258 100644 --- a/src/renderer/src/windows/selection/action/components/ActionUtils.ts +++ b/src/renderer/src/windows/selection/action/components/ActionUtils.ts @@ -64,12 +64,13 @@ export const processMessages = async ( newAssistant.webSearchProviderId = undefined newAssistant.mcpServers = undefined newAssistant.knowledge_bases = undefined - const llmMessages = await ConversationService.prepareMessagesForModel([userMessage], newAssistant) + const { modelMessages, uiMessages } = await ConversationService.prepareMessagesForModel([userMessage], newAssistant) await fetchChatCompletion({ - messages: llmMessages, + messages: modelMessages, assistant: newAssistant, options: {}, + uiMessages: uiMessages, onChunkReceived: (chunk: Chunk) => { if (finished) { return