ソースを参照

fix: filter outlet issue with many model chat

Timothy J. Baek 11 ヶ月 前
コミット
fec51342ca
1 ファイル変更12 行追加0 行削除
  1. 12 0
      src/lib/components/chat/Chat.svelte

+ 12 - 0
src/lib/components/chat/Chat.svelte

@@ -236,6 +236,15 @@
 		}
 		}
 	};
 	};
 
 
+	const createMessagesList = (responseMessageId) => {
+		const message = history.messages[responseMessageId];
+		if (message.parentId) {
+			return [...createMessagesList(message.parentId), message];
+		} else {
+			return [message];
+		}
+	};
+
 	//////////////////////////
 	//////////////////////////
 	// Ollama functions
 	// Ollama functions
 	//////////////////////////
 	//////////////////////////
@@ -599,6 +608,7 @@
 						controller.abort('User: Stop Response');
 						controller.abort('User: Stop Response');
 						await cancelOllamaRequest(localStorage.token, currentRequestId);
 						await cancelOllamaRequest(localStorage.token, currentRequestId);
 					} else {
 					} else {
+						const messages = createMessagesList(responseMessageId);
 						const res = await chatCompleted(localStorage.token, {
 						const res = await chatCompleted(localStorage.token, {
 							model: model,
 							model: model,
 							messages: messages.map((m) => ({
 							messages: messages.map((m) => ({
@@ -880,6 +890,8 @@
 						if (stopResponseFlag) {
 						if (stopResponseFlag) {
 							controller.abort('User: Stop Response');
 							controller.abort('User: Stop Response');
 						} else {
 						} else {
+							const messages = createMessagesList(responseMessageId);
+
 							const res = await chatCompleted(localStorage.token, {
 							const res = await chatCompleted(localStorage.token, {
 								model: model,
 								model: model,
 								messages: messages.map((m) => ({
 								messages: messages.map((m) => ({