Disable-able chat history and examples

This commit is contained in:
Cohee 2024-04-17 21:23:06 +03:00
parent d63638541b
commit 8a4b675143
2 changed files with 13 additions and 5 deletions

View File

@ -102,7 +102,7 @@ class Prompt {
/**
* Representing a collection of prompts.
*/
class PromptCollection {
export class PromptCollection {
collection = [];
overriddenPrompts = [];
@ -163,7 +163,7 @@ class PromptCollection {
/**
* 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.
*/
index(identifier) {
@ -904,7 +904,7 @@ class PromptManager {
* @returns {boolean} True if the prompt can be deleted, false otherwise.
*/
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);
}

View File

@ -726,12 +726,16 @@ export function isOpenRouterWithInstruct() {
/**
* Populates the chat history of the conversation.
* @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 type
* @param cyclePrompt
*/
async function populateChatHistory(messages, prompts, chatCompletion, type = null, cyclePrompt = null) {
if (!prompts.has('chatHistory')) {
return;
}
chatCompletion.add(new MessageCollection('chatHistory'), prompts.index('chatHistory'));
// 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.
*
* @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 {Object[]} messageExamples - Array containing all message examples.
*/
function populateDialogueExamples(prompts, chatCompletion, messageExamples) {
if (!prompts.has('dialogueExamples')) {
return;
}
chatCompletion.add(new MessageCollection('dialogueExamples'), prompts.index('dialogueExamples'));
if (Array.isArray(messageExamples) && messageExamples.length) {
const newExampleChat = new Message('system', substituteParams(oai_settings.new_example_chat_prompt), 'newChat');