|
@@ -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) {
|
|
|
|
- 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');
|
|
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 () => {
|
|
|
|
- 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;
|
|
|
|
|
|
+ const generateChatTitle = async (userPrompt) => {
|
|
|
|
+ if ($settings?.title?.auto ?? true) {
|
|
|
|
+ const model = $models.find((model) => model.id === selectedModels[0]);
|
|
|
|
|
|
- await sendPrompt(userPrompt, userMessage.id);
|
|
|
|
- }
|
|
|
|
- };
|
|
|
|
|
|
+ const titleModelId =
|
|
|
|
+ model?.external ?? false
|
|
|
|
+ ? $settings?.title?.modelExternal ?? selectedModels[0]
|
|
|
|
+ : $settings?.title?.model ?? selectedModels[0];
|
|
|
|
+ const titleModel = $models.find((model) => model.id === titleModelId);
|
|
|
|
|
|
- const generateChatTitle = async (_chatId, userPrompt) => {
|
|
|
|
- if ($settings.titleAutoGenerate ?? true) {
|
|
|
|
|
|
+ console.log(titleModel);
|
|
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],
|
|
|
|
- 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 {
|
|
} else {
|
|
- await setChatTitle(_chatId, `${userPrompt}`);
|
|
|
|
|
|
+ return `${userPrompt}`;
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
@@ -789,8 +799,10 @@
|
|
title = _title;
|
|
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 () => {
|
|
const getTags = async () => {
|