mirror of
				https://github.com/open-webui/open-webui
				synced 2025-06-26 18:26:48 +00:00 
			
		
		
		
	feat: messages refac
This commit is contained in:
		
							parent
							
								
									f91a6b63d1
								
							
						
					
					
						commit
						b916f1b07d
					
				@ -96,7 +96,17 @@
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	const confirmEditResponseMessage = async (messageId, content) => {
 | 
			
		||||
		history.messages[messageId].originalContent = history.messages[messageId].content;
 | 
			
		||||
		history.messages[messageId].content = content;
 | 
			
		||||
 | 
			
		||||
		await tick();
 | 
			
		||||
 | 
			
		||||
		await updateChatById(localStorage.token, chatId, {
 | 
			
		||||
			messages: messages,
 | 
			
		||||
			history: history
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		await chats.set(await getChatList(localStorage.token));
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	const rateMessage = async (messageId, rating) => {
 | 
			
		||||
@ -225,6 +235,7 @@
 | 
			
		||||
				{:else}
 | 
			
		||||
					<ResponseMessage
 | 
			
		||||
						{message}
 | 
			
		||||
						modelfiles={selectedModelfiles}
 | 
			
		||||
						siblings={history.messages[message.parentId]?.childrenIds ?? []}
 | 
			
		||||
						isLastMessage={messageIdx + 1 === messages.length}
 | 
			
		||||
						{confirmEditResponseMessage}
 | 
			
		||||
 | 
			
		||||
@ -26,8 +26,6 @@
 | 
			
		||||
	export let copyToClipboard: Function;
 | 
			
		||||
	export let regenerateResponse: Function;
 | 
			
		||||
 | 
			
		||||
	let selectedModelfile = '';
 | 
			
		||||
 | 
			
		||||
	let edit = false;
 | 
			
		||||
	let editedContent = '';
 | 
			
		||||
 | 
			
		||||
@ -42,19 +40,14 @@
 | 
			
		||||
		await tick();
 | 
			
		||||
 | 
			
		||||
		if (tooltipInstance) {
 | 
			
		||||
			console.log(tooltipInstance);
 | 
			
		||||
			tooltipInstance[0].destroy();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		console.log('rendering message');
 | 
			
		||||
 | 
			
		||||
		renderLatex();
 | 
			
		||||
		hljs.highlightAll();
 | 
			
		||||
		createCopyCodeBlockButton();
 | 
			
		||||
 | 
			
		||||
		if (message.info) {
 | 
			
		||||
			console.log(message);
 | 
			
		||||
 | 
			
		||||
			tooltipInstance = tippy(`#info-${message.id}`, {
 | 
			
		||||
				content: `<span class="text-xs" id="tooltip-${message.id}">token/s: ${
 | 
			
		||||
					`${
 | 
			
		||||
@ -214,12 +207,12 @@
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<div class=" flex w-full message-{message.id}">
 | 
			
		||||
	<ProfileImage src={selectedModelfile?.imageUrl ?? '/favicon.png'} />
 | 
			
		||||
	<ProfileImage src={modelfiles[message.model]?.imageUrl ?? '/favicon.png'} />
 | 
			
		||||
 | 
			
		||||
	<div class="w-full overflow-hidden">
 | 
			
		||||
		<Name>
 | 
			
		||||
			{#if selectedModelfile}
 | 
			
		||||
				{selectedModelfile.title}
 | 
			
		||||
			{#if message.model in modelfiles}
 | 
			
		||||
				{modelfiles[message.model]?.title}
 | 
			
		||||
			{:else}
 | 
			
		||||
				Ollama <span class=" text-gray-500 text-sm font-medium"
 | 
			
		||||
					>{message.model ? ` ${message.model}` : ''}</span
 | 
			
		||||
 | 
			
		||||
@ -31,6 +31,17 @@
 | 
			
		||||
			? $modelfiles.filter((modelfile) => modelfile.tagName === selectedModels[0])[0]
 | 
			
		||||
			: null;
 | 
			
		||||
 | 
			
		||||
	let selectedModelfiles = {};
 | 
			
		||||
	$: selectedModelfiles = selectedModels.reduce((a, tagName, i, arr) => {
 | 
			
		||||
		const modelfile =
 | 
			
		||||
			$modelfiles.filter((modelfile) => modelfile.tagName === tagName)?.at(0) ?? undefined;
 | 
			
		||||
 | 
			
		||||
		return {
 | 
			
		||||
			...a,
 | 
			
		||||
			...(modelfile && { [tagName]: modelfile })
 | 
			
		||||
		};
 | 
			
		||||
	}, {});
 | 
			
		||||
 | 
			
		||||
	let chat = null;
 | 
			
		||||
 | 
			
		||||
	let title = '';
 | 
			
		||||
@ -643,7 +654,7 @@
 | 
			
		||||
				<Messages
 | 
			
		||||
					chatId={$chatId}
 | 
			
		||||
					{selectedModels}
 | 
			
		||||
					{selectedModelfile}
 | 
			
		||||
					{selectedModelfiles}
 | 
			
		||||
					bind:history
 | 
			
		||||
					bind:messages
 | 
			
		||||
					bind:autoScroll
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user