From 9471481e33989e5538af87d6735d191aaafa7de9 Mon Sep 17 00:00:00 2001 From: Faisal Amir Date: Fri, 20 Sep 2024 18:15:06 +0700 Subject: [PATCH] fix: thread title for remote model from first prompt (#3712) * fix: generate title using first prompt for remote model * fix: disable react-hooks/exhaustive-deps --- web/containers/Providers/EventHandler.tsx | 24 ++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/web/containers/Providers/EventHandler.tsx b/web/containers/Providers/EventHandler.tsx index 2e4db4173..1fbcd3919 100644 --- a/web/containers/Providers/EventHandler.tsx +++ b/web/containers/Providers/EventHandler.tsx @@ -213,6 +213,7 @@ export default function EventHandler({ children }: { children: ReactNode }) { // Attempt to generate the title of the Thread when needed generateThreadTitle(message, thread) }, + // eslint-disable-next-line react-hooks/exhaustive-deps [setIsGeneratingResponse, updateMessage, updateThread, updateThreadWaiting] ) @@ -236,12 +237,29 @@ export default function EventHandler({ children }: { children: ReactNode }) { return } - // Check model engine; we don't want to generate a title when it's not a local engine. + if (!activeModelRef.current) { + return + } + + // Check model engine; we don't want to generate a title when it's not a local engine. remote model using first promp if ( - !activeModelRef.current || !localEngines.includes(activeModelRef.current?.engine as InferenceEngine) ) { - return + const updatedThread: Thread = { + ...thread, + title: (thread.metadata?.lastMessage as string) || defaultThreadTitle, + metadata: thread.metadata, + } + return extensionManager + .get(ExtensionTypeEnum.Conversational) + ?.saveThread({ + ...updatedThread, + }) + .then(() => { + updateThread({ + ...updatedThread, + }) + }) } // This is the first time message comes in on a new thread