diff --git a/backend/danswer/server/query_and_chat/chat_backend.py b/backend/danswer/server/query_and_chat/chat_backend.py index 86d4f7d9bb42..7d01f4781ccf 100644 --- a/backend/danswer/server/query_and_chat/chat_backend.py +++ b/backend/danswer/server/query_and_chat/chat_backend.py @@ -408,7 +408,7 @@ def seed_chat( ) return ChatSeedResponse( - redirect_url=f"{WEB_DOMAIN}/chat?chatId={new_chat_session.id}" + redirect_url=f"{WEB_DOMAIN}/chat?chatId={new_chat_session.id}&seeded=true" ) diff --git a/web/src/app/chat/ChatPage.tsx b/web/src/app/chat/ChatPage.tsx index 320c1d93fc10..4521ecaeece5 100644 --- a/web/src/app/chat/ChatPage.tsx +++ b/web/src/app/chat/ChatPage.tsx @@ -180,20 +180,27 @@ export function ChatPage({ ); const newMessageHistory = processRawChatHistory(chatSession.messages); - setMessageHistory(newMessageHistory); + // if the last message is an error, don't overwrite it + if (messageHistory[messageHistory.length - 1]?.type !== "error") { + setMessageHistory(newMessageHistory); - const latestMessageId = - newMessageHistory[newMessageHistory.length - 1]?.messageId; - setSelectedMessageForDocDisplay( - latestMessageId !== undefined ? latestMessageId : null - ); + const latestMessageId = + newMessageHistory[newMessageHistory.length - 1]?.messageId; + setSelectedMessageForDocDisplay( + latestMessageId !== undefined ? latestMessageId : null + ); + } setChatSessionSharedStatus(chatSession.shared_status); setIsFetchingChatMessages(false); // if this is a seeded chat, then kick off the AI message generation - if (newMessageHistory.length === 1 && !submitOnLoadPerformed.current) { + if ( + newMessageHistory.length === 1 && + !submitOnLoadPerformed.current && + searchParams.get(SEARCH_PARAM_NAMES.SEEDED) === "true" + ) { submitOnLoadPerformed.current = true; const seededMessage = newMessageHistory[0].message; await onSubmit({ diff --git a/web/src/app/chat/searchParams.ts b/web/src/app/chat/searchParams.ts index ad438e0126a4..ba67d26d62de 100644 --- a/web/src/app/chat/searchParams.ts +++ b/web/src/app/chat/searchParams.ts @@ -13,6 +13,8 @@ export const SEARCH_PARAM_NAMES = { SUBMIT_ON_LOAD: "submit-on-load", // chat title TITLE: "title", + // for seeding chats + SEEDED: "seeded", }; export function shouldSubmitOnLoad(searchParams: ReadonlyURLSearchParams) {