From 9beefca3f5f0ee540a7cbf11aade0fed8b739bb4 Mon Sep 17 00:00:00 2001 From: maver Date: Thu, 1 Jun 2023 18:51:05 +0200 Subject: [PATCH] Enable Chat Completion to create messages for itself And return their token count --- public/scripts/PromptManager.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/public/scripts/PromptManager.js b/public/scripts/PromptManager.js index c5292e5ca..64ae9bf30 100644 --- a/public/scripts/PromptManager.js +++ b/public/scripts/PromptManager.js @@ -40,6 +40,26 @@ const ChatCompletion = { const index = this.map.findIndex(message => message.identifier === identifier) return -1 === index ? false : index; }, + makeSystemMessage(content) { + return this.makeMessage('system', content); + }, + makeUserMessage(content) { + return this.makeMessage('user', content); + }, + makeAssistantMessage(content) { + return this.makeMessage('assistant', content); + }, + makeMessage(role, content) { + return {role: role, content: content} + }, + getPromptsWithTokenCount() { + return this.map.map((message) => { + return { identifier: message.identifier, calculated_tokens: message.message ? countTokens(message.message) : 0} + }); + }, + getTotalTokenCount() { + return this.getPromptsWithTokenCount().reduce((acc, message) => acc += message.calculated_tokens, 0) + }, getChat() { return this.map.reduce((chat, item) => { if (!item || !item.message || (false === Array.isArray(item.message) && !item.message.content)) return chat;