From 1be05fa51426f1b640569a1a1946ea97f59c283a Mon Sep 17 00:00:00 2001 From: 50h100a Date: Fri, 7 Jul 2023 19:41:57 -0400 Subject: [PATCH 1/3] Always run extension interceptors. --- public/script.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/public/script.js b/public/script.js index 84c02c9e8..6cedb4a3e 100644 --- a/public/script.js +++ b/public/script.js @@ -2198,10 +2198,9 @@ async function Generate(type, { automatic_trigger, force_name2, resolve, reject, // Determine token limit let this_max_context = getMaxContextSize(); - if (extension_settings.chromadb.n_results !== 0) { - await runGenerationInterceptors(coreChat, this_max_context); - console.log(`Core/all messages: ${coreChat.length}/${chat.length}`); - } + // Always run the extension interceptors. + await runGenerationInterceptors(coreChat, this_max_context); + console.log(`Core/all messages: ${coreChat.length}/${chat.length}`); let storyString = ""; From 5983e50d21a1a1a180830254f3a46d4263a6e8aa Mon Sep 17 00:00:00 2001 From: 50h100a Date: Fri, 7 Jul 2023 19:43:27 -0400 Subject: [PATCH 2/3] Query from *in context* messages, not every single message since the dawn of time... --- public/scripts/extensions/infinity-context/index.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/public/scripts/extensions/infinity-context/index.js b/public/scripts/extensions/infinity-context/index.js index f00f266dc..0e804ac75 100644 --- a/public/scripts/extensions/infinity-context/index.js +++ b/public/scripts/extensions/infinity-context/index.js @@ -622,11 +622,11 @@ window.chromadb_interceptGeneration = async (chat, maxContext) => { queryBlob = lastMessage.mes; } else { - for (let msg of chat) { + for (let msg of chat.slice(-extension_settings.chromadb.keep_context)) { queryBlob += `${msg.mes}\n` } } - console.log("ChromDB Query text:", queryBlob); + console.log("CHROMADB: Query text:", queryBlob); if (recallStrategy === 'multichat') { console.log("Utilizing multichat") @@ -642,7 +642,7 @@ window.chromadb_interceptGeneration = async (chat, maxContext) => { else { queriedMessages.sort((a, b) => b.distance - a.distance); } - console.log(queriedMessages); + console.debug("CHROMADB: Query results: %o", queriedMessages); let newChat = []; @@ -702,6 +702,7 @@ window.chromadb_interceptGeneration = async (chat, maxContext) => { } const promptBlob = wrapperMsg.replace('{{memories}}', allMemoryBlob); + console.debug("CHROMADB: prompt blob: %o", promptBlob); context.setExtensionPrompt(MODULE_NAME, promptBlob, extension_prompt_types.AFTER_SCENARIO); } if (selectedStrategy === 'custom') { From 46e1a25d83e84aef5b3dc623463f0ea2de6d941d Mon Sep 17 00:00:00 2001 From: Cohee Date: Sat, 8 Jul 2023 04:12:17 +0300 Subject: [PATCH 3/3] Fix cross-tab file drag and drop --- public/script.js | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/public/script.js b/public/script.js index 84c02c9e8..1dde4307d 100644 --- a/public/script.js +++ b/public/script.js @@ -6663,6 +6663,28 @@ function importCharacter(file) { }); } +async function importFromURL(items, files) { + for (const item of items) { + if (item.type === 'text/uri-list') { + const uriList = await new Promise((resolve) => { + item.getAsString((uriList) => { resolve(uriList); }); + }); + const uris = uriList.split('\n').filter(uri => uri.trim() !== ''); + try { + for (const uri of uris) { + const request = await fetch(uri); + const data = await request.blob(); + const fileName = request.headers.get('Content-Disposition')?.split('filename=')[1]?.replace(/"/g, '') || uri.split('/').pop() || 'file.png'; + const file = new File([data], fileName, { type: data.type }); + files.push(file); + } + } catch (error) { + console.error('Failed to import from URL', error); + } + } + } +} + const isPwaMode = window.navigator.standalone; if (isPwaMode) { $("body").addClass('PWA') } @@ -8409,12 +8431,13 @@ $(document).ready(function () { $dropzone.removeClass('dragover'); }); - $dropzone.on('drop', (event) => { + $dropzone.on('drop', async (event) => { event.preventDefault(); event.stopPropagation(); $dropzone.removeClass('dragover'); - const files = event.originalEvent.dataTransfer.files; + const files = Array.from(event.originalEvent.dataTransfer.files); + await importFromURL(event.originalEvent.dataTransfer.items, files); processDroppedFiles(files); });