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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($settings.saveChatHistory ?? true) {
|
||||||
chat = await updateChatById(localStorage.token, _chatId, { title: _title });
|
chat = await updateChatById(localStorage.token, _chatId, { title: _title });
|
||||||
await chats.set(await getChatList(localStorage.token));
|
await chats.set(await getChatList(localStorage.token));
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const getTags = async () => {
|
const getTags = async () => {
|
||||||
|
|
Loading…
Reference in a new issue