forked from open-webui/open-webui
		
	refac: chat[id] page
This commit is contained in:
		
							parent
							
								
									3edc547389
								
							
						
					
					
						commit
						941bb7c603
					
				
					 2 changed files with 51 additions and 39 deletions
				
			
		|  | @ -784,6 +784,17 @@ | ||||||
| 		} | 		} | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
|  | 	const setChatTitle = async (_chatId, _title) => { | ||||||
|  | 		if (_chatId === $chatId) { | ||||||
|  | 			title = _title; | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		if ($settings.saveChatHistory ?? true) { | ||||||
|  | 			chat = await updateChatById(localStorage.token, _chatId, { title: _title }); | ||||||
|  | 			await chats.set(await getChatList(localStorage.token)); | ||||||
|  | 		} | ||||||
|  | 	}; | ||||||
|  | 
 | ||||||
| 	const getTags = async () => { | 	const getTags = async () => { | ||||||
| 		return await getTagsById(localStorage.token, $chatId).catch(async (error) => { | 		return await getTagsById(localStorage.token, $chatId).catch(async (error) => { | ||||||
| 			return []; | 			return []; | ||||||
|  | @ -811,17 +822,6 @@ | ||||||
| 
 | 
 | ||||||
| 		_tags.set(await getAllChatTags(localStorage.token)); | 		_tags.set(await getAllChatTags(localStorage.token)); | ||||||
| 	}; | 	}; | ||||||
| 
 |  | ||||||
| 	const setChatTitle = async (_chatId, _title) => { |  | ||||||
| 		if (_chatId === $chatId) { |  | ||||||
| 			title = _title; |  | ||||||
| 		} |  | ||||||
| 
 |  | ||||||
| 		if ($settings.saveChatHistory ?? true) { |  | ||||||
| 			chat = await updateChatById(localStorage.token, _chatId, { title: _title }); |  | ||||||
| 			await chats.set(await getChatList(localStorage.token)); |  | ||||||
| 		} |  | ||||||
| 	}; |  | ||||||
| </script> | </script> | ||||||
| 
 | 
 | ||||||
| <svelte:head> | <svelte:head> | ||||||
|  |  | ||||||
|  | @ -521,7 +521,8 @@ | ||||||
| 
 | 
 | ||||||
| 		if (messages.length == 2 && messages.at(1).content !== '') { | 		if (messages.length == 2 && messages.at(1).content !== '') { | ||||||
| 			window.history.replaceState(history.state, '', `/c/${_chatId}`); | 			window.history.replaceState(history.state, '', `/c/${_chatId}`); | ||||||
| 			await generateChatTitle(_chatId, userPrompt); | 			const _title = await generateChatTitle(userPrompt); | ||||||
|  | 			await setChatTitle(_chatId, _title); | ||||||
| 		} | 		} | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
|  | @ -706,11 +707,8 @@ | ||||||
| 		if (messages.length == 2) { | 		if (messages.length == 2) { | ||||||
| 			window.history.replaceState(history.state, '', `/c/${_chatId}`); | 			window.history.replaceState(history.state, '', `/c/${_chatId}`); | ||||||
| 
 | 
 | ||||||
| 			if ($settings?.titleAutoGenerateModel) { | 			const _title = await generateChatTitle(userPrompt); | ||||||
| 				await generateChatTitle(_chatId, userPrompt); | 			await setChatTitle(_chatId, _title); | ||||||
| 			} else { |  | ||||||
| 				await setChatTitle(_chatId, userPrompt); |  | ||||||
| 			} |  | ||||||
| 		} | 		} | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
|  | @ -719,6 +717,19 @@ | ||||||
| 		console.log('stopResponse'); | 		console.log('stopResponse'); | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
|  | 	const regenerateResponse = async () => { | ||||||
|  | 		console.log('regenerateResponse'); | ||||||
|  | 		if (messages.length != 0 && messages.at(-1).done == true) { | ||||||
|  | 			messages.splice(messages.length - 1, 1); | ||||||
|  | 			messages = messages; | ||||||
|  | 
 | ||||||
|  | 			let userMessage = messages.at(-1); | ||||||
|  | 			let userPrompt = userMessage.content; | ||||||
|  | 
 | ||||||
|  | 			await sendPrompt(userPrompt, userMessage.id); | ||||||
|  | 		} | ||||||
|  | 	}; | ||||||
|  | 
 | ||||||
| 	const continueGeneration = async () => { | 	const continueGeneration = async () => { | ||||||
| 		console.log('continueGeneration'); | 		console.log('continueGeneration'); | ||||||
| 		const _chatId = JSON.parse(JSON.stringify($chatId)); | 		const _chatId = JSON.parse(JSON.stringify($chatId)); | ||||||
|  | @ -751,36 +762,35 @@ | ||||||
| 		} | 		} | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
| 	const regenerateResponse = async () => { | 	const generateChatTitle = async (userPrompt) => { | ||||||
| 		console.log('regenerateResponse'); | 		if ($settings?.title?.auto ?? true) { | ||||||
| 		if (messages.length != 0 && messages.at(-1).done == true) { | 			const model = $models.find((model) => model.id === selectedModels[0]); | ||||||
| 			messages.splice(messages.length - 1, 1); |  | ||||||
| 			messages = messages; |  | ||||||
| 
 | 
 | ||||||
| 			let userMessage = messages.at(-1); | 			const titleModelId = | ||||||
| 			let userPrompt = userMessage.content; | 				model?.external ?? false | ||||||
|  | 					? $settings?.title?.modelExternal ?? selectedModels[0] | ||||||
|  | 					: $settings?.title?.model ?? selectedModels[0]; | ||||||
|  | 			const titleModel = $models.find((model) => model.id === titleModelId); | ||||||
| 
 | 
 | ||||||
| 			await sendPrompt(userPrompt, userMessage.id); | 			console.log(titleModel); | ||||||
| 		} |  | ||||||
| 	}; |  | ||||||
| 
 |  | ||||||
| 	const generateChatTitle = async (_chatId, userPrompt) => { |  | ||||||
| 		if ($settings.titleAutoGenerate ?? true) { |  | ||||||
| 			const title = await generateTitle( | 			const title = await generateTitle( | ||||||
| 				localStorage.token, | 				localStorage.token, | ||||||
| 				$settings?.titleGenerationPrompt ?? | 				$settings?.title?.prompt ?? | ||||||
| 					$i18n.t( | 					$i18n.t( | ||||||
| 						"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':" | 						"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':" | ||||||
| 					) + ' {{prompt}}', | 					) + ' {{prompt}}', | ||||||
| 				$settings?.titleAutoGenerateModel ?? selectedModels[0], | 				titleModelId, | ||||||
| 				userPrompt | 				userPrompt, | ||||||
|  | 				titleModel?.external ?? false | ||||||
|  | 					? titleModel.source === 'litellm' | ||||||
|  | 						? `${LITELLM_API_BASE_URL}/v1` | ||||||
|  | 						: `${OPENAI_API_BASE_URL}` | ||||||
|  | 					: `${OLLAMA_API_BASE_URL}/v1` | ||||||
| 			); | 			); | ||||||
| 
 | 
 | ||||||
| 			if (title) { | 			return title; | ||||||
| 				await setChatTitle(_chatId, title); |  | ||||||
| 			} |  | ||||||
| 		} else { | 		} else { | ||||||
| 			await setChatTitle(_chatId, `${userPrompt}`); | 			return `${userPrompt}`; | ||||||
| 		} | 		} | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
|  | @ -789,8 +799,10 @@ | ||||||
| 			title = _title; | 			title = _title; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		chat = await updateChatById(localStorage.token, _chatId, { title: _title }); | 		if ($settings.saveChatHistory ?? true) { | ||||||
| 		await chats.set(await getChatList(localStorage.token)); | 			chat = await updateChatById(localStorage.token, _chatId, { title: _title }); | ||||||
|  | 			await chats.set(await getChatList(localStorage.token)); | ||||||
|  | 		} | ||||||
| 	}; | 	}; | ||||||
| 
 | 
 | ||||||
| 	const getTags = async () => { | 	const getTags = async () => { | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Timothy J. Baek
						Timothy J. Baek