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 () => { | ||||
| 		return await getTagsById(localStorage.token, $chatId).catch(async (error) => { | ||||
| 			return []; | ||||
|  | @ -811,17 +822,6 @@ | |||
| 
 | ||||
| 		_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> | ||||
| 
 | ||||
| <svelte:head> | ||||
|  |  | |||
|  | @ -521,7 +521,8 @@ | |||
| 
 | ||||
| 		if (messages.length == 2 && messages.at(1).content !== '') { | ||||
| 			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) { | ||||
| 			window.history.replaceState(history.state, '', `/c/${_chatId}`); | ||||
| 
 | ||||
| 			if ($settings?.titleAutoGenerateModel) { | ||||
| 				await generateChatTitle(_chatId, userPrompt); | ||||
| 			} else { | ||||
| 				await setChatTitle(_chatId, userPrompt); | ||||
| 			} | ||||
| 			const _title = await generateChatTitle(userPrompt); | ||||
| 			await setChatTitle(_chatId, _title); | ||||
| 		} | ||||
| 	}; | ||||
| 
 | ||||
|  | @ -719,6 +717,19 @@ | |||
| 		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 () => { | ||||
| 		console.log('continueGeneration'); | ||||
| 		const _chatId = JSON.parse(JSON.stringify($chatId)); | ||||
|  | @ -751,36 +762,35 @@ | |||
| 		} | ||||
| 	}; | ||||
| 
 | ||||
| 	const regenerateResponse = async () => { | ||||
| 		console.log('regenerateResponse'); | ||||
| 		if (messages.length != 0 && messages.at(-1).done == true) { | ||||
| 			messages.splice(messages.length - 1, 1); | ||||
| 			messages = messages; | ||||
| 	const generateChatTitle = async (userPrompt) => { | ||||
| 		if ($settings?.title?.auto ?? true) { | ||||
| 			const model = $models.find((model) => model.id === selectedModels[0]); | ||||
| 
 | ||||
| 			let userMessage = messages.at(-1); | ||||
| 			let userPrompt = userMessage.content; | ||||
| 			const titleModelId = | ||||
| 				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); | ||||
| 		} | ||||
| 	}; | ||||
| 
 | ||||
| 	const generateChatTitle = async (_chatId, userPrompt) => { | ||||
| 		if ($settings.titleAutoGenerate ?? true) { | ||||
| 			console.log(titleModel); | ||||
| 			const title = await generateTitle( | ||||
| 				localStorage.token, | ||||
| 				$settings?.titleGenerationPrompt ?? | ||||
| 				$settings?.title?.prompt ?? | ||||
| 					$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':" | ||||
| 					) + ' {{prompt}}', | ||||
| 				$settings?.titleAutoGenerateModel ?? selectedModels[0], | ||||
| 				userPrompt | ||||
| 				titleModelId, | ||||
| 				userPrompt, | ||||
| 				titleModel?.external ?? false | ||||
| 					? titleModel.source === 'litellm' | ||||
| 						? `${LITELLM_API_BASE_URL}/v1` | ||||
| 						: `${OPENAI_API_BASE_URL}` | ||||
| 					: `${OLLAMA_API_BASE_URL}/v1` | ||||
| 			); | ||||
| 
 | ||||
| 			if (title) { | ||||
| 				await setChatTitle(_chatId, title); | ||||
| 			} | ||||
| 			return title; | ||||
| 		} else { | ||||
| 			await setChatTitle(_chatId, `${userPrompt}`); | ||||
| 			return `${userPrompt}`; | ||||
| 		} | ||||
| 	}; | ||||
| 
 | ||||
|  | @ -789,8 +799,10 @@ | |||
| 			title = _title; | ||||
| 		} | ||||
| 
 | ||||
| 		chat = await updateChatById(localStorage.token, _chatId, { title: _title }); | ||||
| 		await chats.set(await getChatList(localStorage.token)); | ||||
| 		if ($settings.saveChatHistory ?? true) { | ||||
| 			chat = await updateChatById(localStorage.token, _chatId, { title: _title }); | ||||
| 			await chats.set(await getChatList(localStorage.token)); | ||||
| 		} | ||||
| 	}; | ||||
| 
 | ||||
| 	const getTags = async () => { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue