From bb5c6a8bb9a98eb907949afac9df1fffbb9b6b9f Mon Sep 17 00:00:00 2001 From: chenxi <16267732+chenxi-null@users.noreply.github.com> Date: Mon, 5 May 2025 21:04:18 +0800 Subject: [PATCH] Fix: 'Web Search' and 'Clear Context' don't work (#5677) --- src/renderer/src/hooks/useAssistant.ts | 9 +++++++-- src/renderer/src/services/ApiService.ts | 5 ++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/renderer/src/hooks/useAssistant.ts b/src/renderer/src/hooks/useAssistant.ts index b7edd5ad59..99d26b742c 100644 --- a/src/renderer/src/hooks/useAssistant.ts +++ b/src/renderer/src/hooks/useAssistant.ts @@ -43,9 +43,14 @@ export function useAssistant(id: string) { const dispatch = useAppDispatch() const { defaultModel } = useDefaultModel() + const model = assistant?.model ?? assistant?.defaultModel ?? defaultModel + if (!model) { + throw new Error(`Assistant model is not set for assistant with name: ${assistant?.name ?? 'unknown'}`) + } + return { - assistant, - model: assistant?.model ?? assistant?.defaultModel ?? defaultModel, + assistant: { ...assistant, model }, + model, addTopic: (topic: Topic) => dispatch(addTopic({ assistantId: assistant.id, topic })), removeTopic: (topic: Topic) => { TopicManager.removeTopic(topic.id) diff --git a/src/renderer/src/services/ApiService.ts b/src/renderer/src/services/ApiService.ts index 65825ee597..2bc1b0ba7c 100644 --- a/src/renderer/src/services/ApiService.ts +++ b/src/renderer/src/services/ApiService.ts @@ -247,6 +247,9 @@ export async function fetchChatCompletion({ console.log('[DEBUG] Got assistant provider:', provider.id) const AI = new AiProvider(provider) + // Make sure that 'Clear Context' works for all scenarios including external tool and normal chat. + messages = filterContextMessages(messages) + const lastUserMessage = findLast(messages, (m) => m.role === 'user') const lastAnswer = findLast(messages, (m) => m.role === 'assistant') if (!lastUserMessage) { @@ -258,7 +261,7 @@ export async function fetchChatCompletion({ // They will be retrieved and used by the messageThunk later to create CitationBlocks. const { mcpTools } = await fetchExternalTool(lastUserMessage, assistant, onChunkReceived, lastAnswer) - const filteredMessages = filterUsefulMessages(filterContextMessages(messages)) + const filteredMessages = filterUsefulMessages(messages) // --- Call AI Completions --- console.log('[DEBUG] Calling AI.completions')