Timothy J. Baek 11 mesi fa
parent
commit
0260c714d9

+ 40 - 36
src/lib/components/chat/Messages/CompareMessages.svelte

@@ -41,6 +41,44 @@
 		};
 	}, {});
 
+	const showPreviousMessage = (model) => {
+		groupedMessagesIdx[model] = Math.max(0, groupedMessagesIdx[model] - 1);
+		let messageId = groupedMessages[model].messages[groupedMessagesIdx[model]].id;
+
+		console.log(messageId);
+		let messageChildrenIds = history.messages[messageId].childrenIds;
+
+		while (messageChildrenIds.length !== 0) {
+			messageId = messageChildrenIds.at(-1);
+			messageChildrenIds = history.messages[messageId].childrenIds;
+		}
+
+		history.currentId = messageId;
+
+		dispatch('change');
+	};
+
+	const showNextMessage = (model) => {
+		groupedMessagesIdx[model] = Math.min(
+			groupedMessages[model].messages.length - 1,
+			groupedMessagesIdx[model] + 1
+		);
+
+		let messageId = groupedMessages[model].messages[groupedMessagesIdx[model]].id;
+		console.log(messageId);
+
+		let messageChildrenIds = history.messages[messageId].childrenIds;
+
+		while (messageChildrenIds.length !== 0) {
+			messageId = messageChildrenIds.at(-1);
+			messageChildrenIds = history.messages[messageId].childrenIds;
+		}
+
+		history.currentId = messageId;
+
+		dispatch('change');
+	};
+
 	onMount(async () => {
 		await tick();
 		currentMessageId = messages[messageIdx].id;
@@ -97,42 +135,8 @@
 						isLastMessage={true}
 						{updateChatMessages}
 						{confirmEditResponseMessage}
-						showPreviousMessage={() => {
-							groupedMessagesIdx[model] = Math.max(0, groupedMessagesIdx[model] - 1);
-							let messageId = groupedMessages[model].messages[groupedMessagesIdx[model]].id;
-
-							console.log(messageId);
-							let messageChildrenIds = history.messages[messageId].childrenIds;
-
-							while (messageChildrenIds.length !== 0) {
-								messageId = messageChildrenIds.at(-1);
-								messageChildrenIds = history.messages[messageId].childrenIds;
-							}
-
-							history.currentId = messageId;
-
-							dispatch('change');
-						}}
-						showNextMessage={() => {
-							groupedMessagesIdx[model] = Math.min(
-								groupedMessages[model].messages.length - 1,
-								groupedMessagesIdx[model] + 1
-							);
-
-							let messageId = groupedMessages[model].messages[groupedMessagesIdx[model]].id;
-							console.log(messageId);
-
-							let messageChildrenIds = history.messages[messageId].childrenIds;
-
-							while (messageChildrenIds.length !== 0) {
-								messageId = messageChildrenIds.at(-1);
-								messageChildrenIds = history.messages[messageId].childrenIds;
-							}
-
-							history.currentId = messageId;
-
-							dispatch('change');
-						}}
+						showPreviousMessage={() => showPreviousMessage(model)}
+						showNextMessage={() => showNextMessage(model)}
 						{rateMessage}
 						{copyToClipboard}
 						{continueGeneration}

+ 28 - 20
src/routes/(app)/+page.svelte

@@ -257,26 +257,6 @@
 
 		let userContext = null;
 
-		if ($settings?.memory ?? false) {
-			const res = await queryMemory(localStorage.token, prompt).catch((error) => {
-				toast.error(error);
-				return null;
-			});
-
-			if (res) {
-				if (res.documents[0].length > 0) {
-					userContext = res.documents.reduce((acc, doc, index) => {
-						const createdAtTimestamp = res.metadatas[index][0].created_at;
-						const createdAtDate = new Date(createdAtTimestamp * 1000).toISOString().split('T')[0];
-						acc.push(`${index + 1}. [${createdAtDate}]. ${doc[0]}`);
-						return acc;
-					}, []);
-				}
-
-				console.log(userContext);
-			}
-		}
-
 		await Promise.all(
 			(modelId ? [modelId] : atSelectedModel !== '' ? [atSelectedModel.id] : selectedModels).map(
 				async (modelId) => {
@@ -309,6 +289,34 @@
 							];
 						}
 
+						await tick();
+
+						if ($settings?.memory ?? false) {
+							if (userContext === null) {
+								const res = await queryMemory(localStorage.token, prompt).catch((error) => {
+									toast.error(error);
+									return null;
+								});
+
+								if (res) {
+									if (res.documents[0].length > 0) {
+										userContext = res.documents.reduce((acc, doc, index) => {
+											const createdAtTimestamp = res.metadatas[index][0].created_at;
+											const createdAtDate = new Date(createdAtTimestamp * 1000)
+												.toISOString()
+												.split('T')[0];
+											acc.push(`${index + 1}. [${createdAtDate}]. ${doc[0]}`);
+											return acc;
+										}, []);
+									}
+
+									console.log(userContext);
+								}
+							}
+						}
+
+						responseMessage.userContext = userContext;
+
 						if (model?.external) {
 							await sendPromptOpenAI(model, prompt, responseMessageId, _chatId);
 						} else if (model) {

+ 28 - 20
src/routes/(app)/c/[id]/+page.svelte

@@ -263,26 +263,6 @@
 
 		let userContext = null;
 
-		if ($settings?.memory ?? false) {
-			const res = await queryMemory(localStorage.token, prompt).catch((error) => {
-				toast.error(error);
-				return null;
-			});
-
-			if (res) {
-				if (res.documents[0].length > 0) {
-					userContext = res.documents.reduce((acc, doc, index) => {
-						const createdAtTimestamp = res.metadatas[index][0].created_at;
-						const createdAtDate = new Date(createdAtTimestamp * 1000).toISOString().split('T')[0];
-						acc.push(`${index + 1}. [${createdAtDate}]. ${doc[0]}`);
-						return acc;
-					}, []);
-				}
-
-				console.log(userContext);
-			}
-		}
-
 		await Promise.all(
 			(modelId ? [modelId] : atSelectedModel !== '' ? [atSelectedModel.id] : selectedModels).map(
 				async (modelId) => {
@@ -315,6 +295,34 @@
 							];
 						}
 
+						await tick();
+
+						if ($settings?.memory ?? false) {
+							if (userContext === null) {
+								const res = await queryMemory(localStorage.token, prompt).catch((error) => {
+									toast.error(error);
+									return null;
+								});
+
+								if (res) {
+									if (res.documents[0].length > 0) {
+										userContext = res.documents.reduce((acc, doc, index) => {
+											const createdAtTimestamp = res.metadatas[index][0].created_at;
+											const createdAtDate = new Date(createdAtTimestamp * 1000)
+												.toISOString()
+												.split('T')[0];
+											acc.push(`${index + 1}. [${createdAtDate}]. ${doc[0]}`);
+											return acc;
+										}, []);
+									}
+
+									console.log(userContext);
+								}
+							}
+						}
+
+						responseMessage.userContext = userContext;
+
 						if (model?.external) {
 							await sendPromptOpenAI(model, prompt, responseMessageId, _chatId);
 						} else if (model) {