From 171cbeec92efbdf48a5f58c214e9b802ca84cd39 Mon Sep 17 00:00:00 2001 From: Faisal Amir Date: Thu, 19 Dec 2024 12:54:39 +0700 Subject: [PATCH 1/2] enhancement: set recommend model to undefined if not lastUsedModel --- web/hooks/useCreateNewThread.ts | 5 ++++- web/hooks/useRecommendedModel.ts | 4 ++-- web/screens/Thread/ThreadCenterPanel/ChatInput/index.tsx | 5 ++--- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/web/hooks/useCreateNewThread.ts b/web/hooks/useCreateNewThread.ts index c85a7fe65d..944b446545 100644 --- a/web/hooks/useCreateNewThread.ts +++ b/web/hooks/useCreateNewThread.ts @@ -23,6 +23,7 @@ import { isLocalEngine } from '@/utils/modelEngine' import { useActiveModel } from './useActiveModel' +import useRecommendedModel from './useRecommendedModel' import useSetActiveThread from './useSetActiveThread' import { extensionManager } from '@/extension' @@ -73,6 +74,8 @@ export const useCreateNewThread = () => { const threads = useAtomValue(threadsAtom) const { stopInference } = useActiveModel() + const { recommendedModel } = useRecommendedModel() + const requestCreateNewThread = async ( assistant: (ThreadAssistantInfo & { id: string; name: string }) | Assistant, model?: Model | undefined @@ -81,7 +84,7 @@ export const useCreateNewThread = () => { setIsGeneratingResponse(false) stopInference() - const defaultModel = model + const defaultModel = model || recommendedModel if (!model) { // if we have model, which means user wants to create new thread from Model hub. Allow them. diff --git a/web/hooks/useRecommendedModel.ts b/web/hooks/useRecommendedModel.ts index e1702701bb..d393fc864e 100644 --- a/web/hooks/useRecommendedModel.ts +++ b/web/hooks/useRecommendedModel.ts @@ -76,7 +76,7 @@ export default function useRecommendedModel() { // if we don't have [lastUsedModelId], then we can just use the first model // in the downloaded list if (!lastUsedModelId) { - setRecommendedModel(models[0]) + setRecommendedModel(undefined) return } @@ -87,7 +87,7 @@ export default function useRecommendedModel() { console.debug( `Last used model ${lastUsedModelId} not found, using first model in list ${models[0].id}}` ) - setRecommendedModel(models[0]) + setRecommendedModel(undefined) return } diff --git a/web/screens/Thread/ThreadCenterPanel/ChatInput/index.tsx b/web/screens/Thread/ThreadCenterPanel/ChatInput/index.tsx index 241e8bcc72..1981964845 100644 --- a/web/screens/Thread/ThreadCenterPanel/ChatInput/index.tsx +++ b/web/screens/Thread/ThreadCenterPanel/ChatInput/index.tsx @@ -188,9 +188,8 @@ const ChatInput = () => { } disabled={ - !isModelSupportRagAndTools && - activeAssistant?.tools && - activeAssistant?.tools[0]?.enabled + !isModelSupportRagAndTools || + (activeAssistant?.tools && activeAssistant?.tools[0]?.enabled) } content={ <> From 84db051982ccc7cddc97de0ee14af54e7de95459 Mon Sep 17 00:00:00 2001 From: Faisal Amir Date: Thu, 19 Dec 2024 12:57:41 +0700 Subject: [PATCH 2/2] chore: update logic --- web/hooks/useRecommendedModel.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/web/hooks/useRecommendedModel.ts b/web/hooks/useRecommendedModel.ts index d393fc864e..03bcc4a30c 100644 --- a/web/hooks/useRecommendedModel.ts +++ b/web/hooks/useRecommendedModel.ts @@ -67,6 +67,7 @@ export default function useRecommendedModel() { if (models.length === 0) { // if we have no downloaded models, then can't recommend anything console.debug("No downloaded models, can't recommend anything") + setRecommendedModel(undefined) return } @@ -76,7 +77,7 @@ export default function useRecommendedModel() { // if we don't have [lastUsedModelId], then we can just use the first model // in the downloaded list if (!lastUsedModelId) { - setRecommendedModel(undefined) + setRecommendedModel(models[0]) return } @@ -87,7 +88,7 @@ export default function useRecommendedModel() { console.debug( `Last used model ${lastUsedModelId} not found, using first model in list ${models[0].id}}` ) - setRecommendedModel(undefined) + setRecommendedModel(models[0]) return }