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')