Browse Source

refac: select action model behaviour

Timothy Jaeryang Baek 9 hours ago
parent
commit
3ff864eb63

+ 1 - 0
src/lib/components/chat/Messages.svelte

@@ -438,6 +438,7 @@
 						<Message
 						<Message
 							{chatId}
 							{chatId}
 							bind:history
 							bind:history
+							{selectedModels}
 							messageId={message.id}
 							messageId={message.id}
 							idx={messageIdx}
 							idx={messageIdx}
 							{user}
 							{user}

+ 16 - 6
src/lib/components/chat/Messages/ContentRenderer.svelte

@@ -18,6 +18,8 @@
 	export let id;
 	export let id;
 	export let content;
 	export let content;
 	export let history;
 	export let history;
+	export let selectedModels = [];
+
 	export let model = null;
 	export let model = null;
 	export let sources = null;
 	export let sources = null;
 
 
@@ -25,11 +27,10 @@
 	export let preview = false;
 	export let preview = false;
 	export let floatingButtons = true;
 	export let floatingButtons = true;
 
 
-	export let onSave = () => {};
-	export let onSourceClick = () => {};
-	export let onTaskClick = () => {};
-
-	export let onAddMessages = () => {};
+	export let onSave = (e) => {};
+	export let onSourceClick = (e) => {};
+	export let onTaskClick = (e) => {};
+	export let onAddMessages = (e) => {};
 
 
 	let contentContainerElement;
 	let contentContainerElement;
 
 
@@ -125,6 +126,11 @@
 	});
 	});
 </script>
 </script>
 
 
+{(selectedModels ?? []).includes(model?.id)
+	? model?.id
+	: (selectedModels ?? []).length > 0
+		? selectedModels.at(0)
+		: model?.id}
 <div bind:this={contentContainerElement}>
 <div bind:this={contentContainerElement}>
 	<Markdown
 	<Markdown
 		{id}
 		{id}
@@ -192,7 +198,11 @@
 	<FloatingButtons
 	<FloatingButtons
 		bind:this={floatingButtonsElement}
 		bind:this={floatingButtonsElement}
 		{id}
 		{id}
-		model={model?.id}
+		model={(selectedModels ?? []).includes(model?.id)
+			? model?.id
+			: (selectedModels ?? []).length > 0
+				? selectedModels.at(0)
+				: model?.id}
 		messages={createMessagesList(history, id)}
 		messages={createMessagesList(history, id)}
 		onAdd={({ modelId, parentId, messages }) => {
 		onAdd={({ modelId, parentId, messages }) => {
 			console.log(modelId, parentId, messages);
 			console.log(modelId, parentId, messages);

+ 3 - 0
src/lib/components/chat/Messages/Message.svelte

@@ -13,6 +13,7 @@
 	import UserMessage from './UserMessage.svelte';
 	import UserMessage from './UserMessage.svelte';
 
 
 	export let chatId;
 	export let chatId;
+	export let selectedModels = [];
 	export let idx = 0;
 	export let idx = 0;
 
 
 	export let history;
 	export let history;
@@ -70,6 +71,7 @@
 				{chatId}
 				{chatId}
 				{history}
 				{history}
 				{messageId}
 				{messageId}
+				{selectedModels}
 				isLastMessage={messageId === history.currentId}
 				isLastMessage={messageId === history.currentId}
 				siblings={history.messages[history.messages[messageId].parentId]?.childrenIds ?? []}
 				siblings={history.messages[history.messages[messageId].parentId]?.childrenIds ?? []}
 				{gotoMessage}
 				{gotoMessage}
@@ -92,6 +94,7 @@
 				bind:history
 				bind:history
 				{chatId}
 				{chatId}
 				{messageId}
 				{messageId}
+				{selectedModels}
 				isLastMessage={messageId === history?.currentId}
 				isLastMessage={messageId === history?.currentId}
 				{updateChat}
 				{updateChat}
 				{editMessage}
 				{editMessage}

+ 2 - 0
src/lib/components/chat/Messages/MultiResponseMessages.svelte

@@ -23,6 +23,7 @@
 	export let chatId;
 	export let chatId;
 	export let history;
 	export let history;
 	export let messageId;
 	export let messageId;
+	export let selectedModels = [];
 
 
 	export let isLastMessage;
 	export let isLastMessage;
 	export let readOnly = false;
 	export let readOnly = false;
@@ -252,6 +253,7 @@
 									{chatId}
 									{chatId}
 									{history}
 									{history}
 									messageId={_messageId}
 									messageId={_messageId}
+									{selectedModels}
 									isLastMessage={true}
 									isLastMessage={true}
 									siblings={groupedMessageIds[modelIdx].messageIds}
 									siblings={groupedMessageIds[modelIdx].messageIds}
 									gotoMessage={(message, messageIdx) => gotoMessage(modelIdx, messageIdx)}
 									gotoMessage={(message, messageIdx) => gotoMessage(modelIdx, messageIdx)}

+ 2 - 0
src/lib/components/chat/Messages/ResponseMessage.svelte

@@ -106,6 +106,7 @@
 	export let chatId = '';
 	export let chatId = '';
 	export let history;
 	export let history;
 	export let messageId;
 	export let messageId;
+	export let selectedModels = [];
 
 
 	let message: MessageType = JSON.parse(JSON.stringify(history.messages[messageId]));
 	let message: MessageType = JSON.parse(JSON.stringify(history.messages[messageId]));
 	$: if (history.messages) {
 	$: if (history.messages) {
@@ -795,6 +796,7 @@
 									<ContentRenderer
 									<ContentRenderer
 										id={message.id}
 										id={message.id}
 										{history}
 										{history}
+										{selectedModels}
 										content={message.content}
 										content={message.content}
 										sources={message.sources}
 										sources={message.sources}
 										floatingButtons={message?.done && !readOnly}
 										floatingButtons={message?.done && !readOnly}