From febf4018b89e26815367dc7469c2b6f11ec815da Mon Sep 17 00:00:00 2001 From: maver Date: Thu, 1 Jun 2023 18:50:33 +0200 Subject: [PATCH] Add fluent getters to Chat Completion --- public/scripts/PromptManager.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/public/scripts/PromptManager.js b/public/scripts/PromptManager.js index daf1ef6f4..c5292e5ca 100644 --- a/public/scripts/PromptManager.js +++ b/public/scripts/PromptManager.js @@ -2,24 +2,39 @@ import {countTokens} from "./openai.js"; import {DraggablePromptListModule as DraggableList} from "./DraggableList.js"; import {substituteParams} from "../script.js"; +// OpenAI API chat message handling +// const map = [{identifier: 'example', message: {role: 'system', content: 'exampleContent'}}, ...]; const ChatCompletion = { new() { return { map: [], add(identifier, message) { this.map.push({identifier: identifier, message: message}) + return this; }, insertBefore(identifier, insertIdentifier, insert) { const index = this.getMessageIndex(identifier); + if (index === -1) throw new Error(`Identifier ${identifier} not found`); this.map.splice(index, 0, {identifier: insertIdentifier, message: insert}); + return this; }, insertAfter(identifier, insertIdentifier, insert) { const index = this.getMessageIndex(identifier); + if (index === -1) throw new Error(`Identifier ${identifier} not found`); this.map.splice(index + 1, 0, {identifier: insertIdentifier, message: insert}); + return this; }, replace(identifier, replacement) { const index = this.getMessageIndex(identifier); + if (index === -1) throw new Error(`Identifier ${identifier} not found`); this.map[index] = {identifier: identifier, message: replacement}; + return this; + }, + remove(identifier) { + const index = this.getMessageIndex(identifier); + if (index === -1) throw new Error(`Identifier ${identifier} not found`); + this.map.splice(index, 1); + return this; }, getMessageIndex(identifier) { const index = this.map.findIndex(message => message.identifier === identifier)