|
@@ -210,7 +210,8 @@
|
|
user: _user ?? undefined,
|
|
user: _user ?? undefined,
|
|
content: userPrompt,
|
|
content: userPrompt,
|
|
files: files.length > 0 ? files : undefined,
|
|
files: files.length > 0 ? files : undefined,
|
|
- timestamp: Math.floor(Date.now() / 1000) // Unix epoch
|
|
|
|
|
|
+ timestamp: Math.floor(Date.now() / 1000), // Unix epoch
|
|
|
|
+ models: selectedModels
|
|
};
|
|
};
|
|
|
|
|
|
// Add message to history and Set currentId to messageId
|
|
// Add message to history and Set currentId to messageId
|
|
@@ -255,47 +256,51 @@
|
|
await sendPrompt(userPrompt, userMessageId);
|
|
await sendPrompt(userPrompt, userMessageId);
|
|
}
|
|
}
|
|
};
|
|
};
|
|
- const sendPrompt = async (prompt, parentId) => {
|
|
|
|
|
|
+
|
|
|
|
+ const sendPrompt = async (prompt, parentId, modelId = null) => {
|
|
const _chatId = JSON.parse(JSON.stringify($chatId));
|
|
const _chatId = JSON.parse(JSON.stringify($chatId));
|
|
|
|
|
|
await Promise.all(
|
|
await Promise.all(
|
|
- (atSelectedModel !== '' ? [atSelectedModel.id] : selectedModels).map(async (modelId) => {
|
|
|
|
- const model = $models.filter((m) => m.id === modelId).at(0);
|
|
|
|
-
|
|
|
|
- if (model) {
|
|
|
|
- // Create response message
|
|
|
|
- let responseMessageId = uuidv4();
|
|
|
|
- let responseMessage = {
|
|
|
|
- parentId: parentId,
|
|
|
|
- id: responseMessageId,
|
|
|
|
- childrenIds: [],
|
|
|
|
- role: 'assistant',
|
|
|
|
- content: '',
|
|
|
|
- model: model.id,
|
|
|
|
- timestamp: Math.floor(Date.now() / 1000) // Unix epoch
|
|
|
|
- };
|
|
|
|
-
|
|
|
|
- // Add message to history and Set currentId to messageId
|
|
|
|
- history.messages[responseMessageId] = responseMessage;
|
|
|
|
- history.currentId = responseMessageId;
|
|
|
|
-
|
|
|
|
- // Append messageId to childrenIds of parent message
|
|
|
|
- if (parentId !== null) {
|
|
|
|
- history.messages[parentId].childrenIds = [
|
|
|
|
- ...history.messages[parentId].childrenIds,
|
|
|
|
- responseMessageId
|
|
|
|
- ];
|
|
|
|
- }
|
|
|
|
|
|
+ (modelId ? [modelId] : atSelectedModel !== '' ? [atSelectedModel.id] : selectedModels).map(
|
|
|
|
+ async (modelId) => {
|
|
|
|
+ console.log('modelId', modelId);
|
|
|
|
+ const model = $models.filter((m) => m.id === modelId).at(0);
|
|
|
|
+
|
|
|
|
+ if (model) {
|
|
|
|
+ // Create response message
|
|
|
|
+ let responseMessageId = uuidv4();
|
|
|
|
+ let responseMessage = {
|
|
|
|
+ parentId: parentId,
|
|
|
|
+ id: responseMessageId,
|
|
|
|
+ childrenIds: [],
|
|
|
|
+ role: 'assistant',
|
|
|
|
+ content: '',
|
|
|
|
+ model: model.id,
|
|
|
|
+ timestamp: Math.floor(Date.now() / 1000) // Unix epoch
|
|
|
|
+ };
|
|
|
|
+
|
|
|
|
+ // Add message to history and Set currentId to messageId
|
|
|
|
+ history.messages[responseMessageId] = responseMessage;
|
|
|
|
+ history.currentId = responseMessageId;
|
|
|
|
+
|
|
|
|
+ // Append messageId to childrenIds of parent message
|
|
|
|
+ if (parentId !== null) {
|
|
|
|
+ history.messages[parentId].childrenIds = [
|
|
|
|
+ ...history.messages[parentId].childrenIds,
|
|
|
|
+ responseMessageId
|
|
|
|
+ ];
|
|
|
|
+ }
|
|
|
|
|
|
- if (model?.external) {
|
|
|
|
- await sendPromptOpenAI(model, prompt, responseMessageId, _chatId);
|
|
|
|
- } else if (model) {
|
|
|
|
- await sendPromptOllama(model, prompt, responseMessageId, _chatId);
|
|
|
|
|
|
+ if (model?.external) {
|
|
|
|
+ await sendPromptOpenAI(model, prompt, responseMessageId, _chatId);
|
|
|
|
+ } else if (model) {
|
|
|
|
+ await sendPromptOllama(model, prompt, responseMessageId, _chatId);
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ toast.error($i18n.t(`Model {{modelId}} not found`, { modelId }));
|
|
}
|
|
}
|
|
- } else {
|
|
|
|
- toast.error($i18n.t(`Model {{modelId}} not found`, { modelId }));
|
|
|
|
}
|
|
}
|
|
- })
|
|
|
|
|
|
+ )
|
|
);
|
|
);
|
|
|
|
|
|
await chats.set(await getChatList(localStorage.token));
|
|
await chats.set(await getChatList(localStorage.token));
|
|
@@ -759,7 +764,7 @@
|
|
console.log('stopResponse');
|
|
console.log('stopResponse');
|
|
};
|
|
};
|
|
|
|
|
|
- const regenerateResponse = async () => {
|
|
|
|
|
|
+ const regenerateResponse = async (modelId = null) => {
|
|
console.log('regenerateResponse');
|
|
console.log('regenerateResponse');
|
|
if (messages.length != 0 && messages.at(-1).done == true) {
|
|
if (messages.length != 0 && messages.at(-1).done == true) {
|
|
messages.splice(messages.length - 1, 1);
|
|
messages.splice(messages.length - 1, 1);
|
|
@@ -768,7 +773,7 @@
|
|
let userMessage = messages.at(-1);
|
|
let userMessage = messages.at(-1);
|
|
let userPrompt = userMessage.content;
|
|
let userPrompt = userMessage.content;
|
|
|
|
|
|
- await sendPrompt(userPrompt, userMessage.id);
|
|
|
|
|
|
+ await sendPrompt(userPrompt, userMessage.id, modelId);
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|