Merge branch 'staging' into neo-server

This commit is contained in:
Cohee 2024-04-17 21:59:30 +03:00
commit 47a06c14d9
2 changed files with 13 additions and 5 deletions

View File

@ -102,7 +102,7 @@ class Prompt {
/** /**
* Representing a collection of prompts. * Representing a collection of prompts.
*/ */
class PromptCollection { export class PromptCollection {
collection = []; collection = [];
overriddenPrompts = []; overriddenPrompts = [];
@ -163,7 +163,7 @@ class PromptCollection {
/** /**
* Retrieves the index of a Prompt instance in the collection by its identifier. * Retrieves the index of a Prompt instance in the collection by its identifier.
* *
* @param {null} identifier - The identifier of the Prompt instance to find. * @param {string} identifier - The identifier of the Prompt instance to find.
* @returns {number} The index of the Prompt instance in the collection, or -1 if not found. * @returns {number} The index of the Prompt instance in the collection, or -1 if not found.
*/ */
index(identifier) { index(identifier) {
@ -904,7 +904,7 @@ class PromptManager {
* @returns {boolean} True if the prompt can be deleted, false otherwise. * @returns {boolean} True if the prompt can be deleted, false otherwise.
*/ */
isPromptToggleAllowed(prompt) { isPromptToggleAllowed(prompt) {
const forceTogglePrompts = ['charDescription', 'charPersonality', 'scenario', 'personaDescription', 'worldInfoBefore', 'worldInfoAfter', 'main']; const forceTogglePrompts = ['charDescription', 'charPersonality', 'scenario', 'personaDescription', 'worldInfoBefore', 'worldInfoAfter', 'main', 'chatHistory', 'dialogueExamples'];
return prompt.marker && !forceTogglePrompts.includes(prompt.identifier) ? false : !this.configuration.toggleDisabled.includes(prompt.identifier); return prompt.marker && !forceTogglePrompts.includes(prompt.identifier) ? false : !this.configuration.toggleDisabled.includes(prompt.identifier);
} }

View File

@ -726,12 +726,16 @@ export function isOpenRouterWithInstruct() {
/** /**
* Populates the chat history of the conversation. * Populates the chat history of the conversation.
* @param {object[]} messages - Array containing all messages. * @param {object[]} messages - Array containing all messages.
* @param {PromptCollection} prompts - Map object containing all prompts where the key is the prompt identifier and the value is the prompt object. * @param {import('./PromptManager').PromptCollection} prompts - Map object containing all prompts where the key is the prompt identifier and the value is the prompt object.
* @param {ChatCompletion} chatCompletion - An instance of ChatCompletion class that will be populated with the prompts. * @param {ChatCompletion} chatCompletion - An instance of ChatCompletion class that will be populated with the prompts.
* @param type * @param type
* @param cyclePrompt * @param cyclePrompt
*/ */
async function populateChatHistory(messages, prompts, chatCompletion, type = null, cyclePrompt = null) { async function populateChatHistory(messages, prompts, chatCompletion, type = null, cyclePrompt = null) {
if (!prompts.has('chatHistory')) {
return;
}
chatCompletion.add(new MessageCollection('chatHistory'), prompts.index('chatHistory')); chatCompletion.add(new MessageCollection('chatHistory'), prompts.index('chatHistory'));
// Reserve budget for new chat message // Reserve budget for new chat message
@ -816,11 +820,15 @@ async function populateChatHistory(messages, prompts, chatCompletion, type = nul
/** /**
* This function populates the dialogue examples in the conversation. * This function populates the dialogue examples in the conversation.
* *
* @param {PromptCollection} prompts - Map object containing all prompts where the key is the prompt identifier and the value is the prompt object. * @param {import('./PromptManager').PromptCollection} prompts - Map object containing all prompts where the key is the prompt identifier and the value is the prompt object.
* @param {ChatCompletion} chatCompletion - An instance of ChatCompletion class that will be populated with the prompts. * @param {ChatCompletion} chatCompletion - An instance of ChatCompletion class that will be populated with the prompts.
* @param {Object[]} messageExamples - Array containing all message examples. * @param {Object[]} messageExamples - Array containing all message examples.
*/ */
function populateDialogueExamples(prompts, chatCompletion, messageExamples) { function populateDialogueExamples(prompts, chatCompletion, messageExamples) {
if (!prompts.has('dialogueExamples')) {
return;
}
chatCompletion.add(new MessageCollection('dialogueExamples'), prompts.index('dialogueExamples')); chatCompletion.add(new MessageCollection('dialogueExamples'), prompts.index('dialogueExamples'));
if (Array.isArray(messageExamples) && messageExamples.length) { if (Array.isArray(messageExamples) && messageExamples.length) {
const newExampleChat = new Message('system', substituteParams(oai_settings.new_example_chat_prompt), 'newChat'); const newExampleChat = new Message('system', substituteParams(oai_settings.new_example_chat_prompt), 'newChat');