From 7a3869c476db071d3e8226be8187903119dd25a8 Mon Sep 17 00:00:00 2001 From: Jason Wu Date: Wed, 13 Sep 2023 18:01:56 +0800 Subject: [PATCH] Enable Smart Context (ChromaDB) support within OpenAI API (#1125) * Add JetBrains IDE .idea folder to .gitignore * Enable Smart Context (ChromaDB) support within OpenAI API --- .gitignore | 1 + public/scripts/openai.js | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/.gitignore b/.gitignore index ab258371e..2dfd8c6cf 100644 --- a/.gitignore +++ b/.gitignore @@ -26,6 +26,7 @@ public/settings.json /thumbnails whitelist.txt .vscode +.idea/ secrets.json /dist /backups/ diff --git a/public/scripts/openai.js b/public/scripts/openai.js index b1faed662..9794884db 100644 --- a/public/scripts/openai.js +++ b/public/scripts/openai.js @@ -636,6 +636,11 @@ function populateChatCompletion(prompts, chatCompletion, { bias, quietPrompt, ty chatCompletion.insert(vectorsMemory, 'main'); } + // Smart Context (ChromaDB) + if (prompts.has('smartContext')) { + chatCompletion.insert(Message.fromPrompt(prompts.get('smartContext')), 'main'); + } + // Decide whether dialogue examples should always be added if (power_user.pin_examples) { populateDialogueExamples(prompts, chatCompletion); @@ -711,6 +716,14 @@ function preparePromptsForChatCompletion({Scenario, charPersonality, name2, worl identifier: 'vectorsMemory', }); + // Smart Context (ChromaDB) + const smartContext = extensionPrompts['chromadb']; + if (smartContext && smartContext.value) systemPrompts.push({ + role: 'system', + content: smartContext.value, + identifier: 'smartContext' + }); + // Persona Description if (power_user.persona_description && power_user.persona_description_position === persona_description_positions.IN_PROMPT) { systemPrompts.push({ role: 'system', content: power_user.persona_description, identifier: 'personaDescription' });