forked from open-webui/open-webui
		
	feat: messages refac
This commit is contained in:
		
							parent
							
								
									f91a6b63d1
								
							
						
					
					
						commit
						b916f1b07d
					
				
					 3 changed files with 26 additions and 11 deletions
				
			
		|  | @ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Timothy J. Baek
						Timothy J. Baek