mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-06-05 21:59:27 +02:00
Fix for chat completion prompts
This commit is contained in:
@ -45,6 +45,7 @@ module.exports = {
|
|||||||
Readability: 'readonly',
|
Readability: 'readonly',
|
||||||
isProbablyReaderable: 'readonly',
|
isProbablyReaderable: 'readonly',
|
||||||
ePub: 'readonly',
|
ePub: 'readonly',
|
||||||
|
diff_match_patch: 'readonly',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
@ -4907,7 +4907,7 @@ export function findItemizedPromptSet(itemizedPrompts, incomingMesId) {
|
|||||||
console.log(`wanting to raw display of ArrayItem: ${PromptArrayItemForRawPromptDisplay} which is mesID ${incomingMesId}`);
|
console.log(`wanting to raw display of ArrayItem: ${PromptArrayItemForRawPromptDisplay} which is mesID ${incomingMesId}`);
|
||||||
console.log(itemizedPrompts[thisPromptSet]);
|
console.log(itemizedPrompts[thisPromptSet]);
|
||||||
break;
|
break;
|
||||||
} else if (itemizedPrompts[i].rawPrompt){
|
} else if (itemizedPrompts[i].rawPrompt) {
|
||||||
priorPromptArrayItemForRawPromptDisplay = i;
|
priorPromptArrayItemForRawPromptDisplay = i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4927,35 +4927,39 @@ async function promptItemize(itemizedPrompts, requestedMesId) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const params = await itemizedParams(itemizedPrompts, thisPromptSet);
|
const params = await itemizedParams(itemizedPrompts, thisPromptSet);
|
||||||
|
const flatten = (rawPrompt) => Array.isArray(rawPrompt) ? rawPrompt.map(x => x.content).join('\n') : rawPrompt;
|
||||||
|
|
||||||
const template = params.this_main_api == 'openai'
|
const template = params.this_main_api == 'openai'
|
||||||
? await renderTemplateAsync('itemizationChat', params)
|
? await renderTemplateAsync('itemizationChat', params)
|
||||||
: await renderTemplateAsync('itemizationText', params);
|
: await renderTemplateAsync('itemizationText', params);
|
||||||
|
|
||||||
const popup = new Popup(template, POPUP_TYPE.TEXT);
|
const popup = new Popup(template, POPUP_TYPE.TEXT);
|
||||||
if (priorPromptArrayItemForRawPromptDisplay){
|
|
||||||
popup.dlg.querySelector('#diffPrevPrompt').style.display='';
|
/** @type {HTMLElement} */
|
||||||
popup.dlg.querySelector('#diffPrevPrompt').addEventListener('click', function () {
|
const diffPrevPrompt = popup.dlg.querySelector('#diffPrevPrompt');
|
||||||
var dmp = new diff_match_patch();
|
if (priorPromptArrayItemForRawPromptDisplay) {
|
||||||
var text1 = itemizedPrompts[priorPromptArrayItemForRawPromptDisplay].rawPrompt;
|
diffPrevPrompt.style.display = '';
|
||||||
var text2 = itemizedPrompts[PromptArrayItemForRawPromptDisplay].rawPrompt;
|
diffPrevPrompt.addEventListener('click', function () {
|
||||||
|
const dmp = new diff_match_patch();
|
||||||
|
const text1 = flatten(itemizedPrompts[priorPromptArrayItemForRawPromptDisplay].rawPrompt);
|
||||||
|
const text2 = flatten(itemizedPrompts[PromptArrayItemForRawPromptDisplay].rawPrompt);
|
||||||
|
|
||||||
dmp.Diff_Timeout = 2.0;
|
dmp.Diff_Timeout = 2.0;
|
||||||
|
|
||||||
var d = dmp.diff_main(text1, text2);
|
|
||||||
var ds = dmp.diff_prettyHtml(d);
|
|
||||||
|
|
||||||
|
const d = dmp.diff_main(text1, text2);
|
||||||
|
let ds = dmp.diff_prettyHtml(d);
|
||||||
// make it readable
|
// make it readable
|
||||||
ds = ds.replaceAll("background:#e6ffe6;", "background:#b9f3b9; color:black;");
|
ds = ds.replaceAll('background:#e6ffe6;', 'background:#b9f3b9; color:black;');
|
||||||
ds = ds.replaceAll("background:#ffe6e6;", "background:#f5b4b4; color:black;");
|
ds = ds.replaceAll('background:#ffe6e6;', 'background:#f5b4b4; color:black;');
|
||||||
ds = ds.replaceAll("¶", "");
|
ds = ds.replaceAll('¶', '');
|
||||||
ds = "<div style='display:block;'>" + ds + "</div>";
|
const container = document.createElement('div');
|
||||||
|
container.innerHTML = DOMPurify.sanitize(ds);
|
||||||
const rawPromptWrapper = document.getElementById('rawPromptWrapper');
|
const rawPromptWrapper = document.getElementById('rawPromptWrapper');
|
||||||
rawPromptWrapper.innerHTML = ds;
|
rawPromptWrapper.replaceChildren(container);
|
||||||
$('#rawPromptPopup').slideToggle();
|
$('#rawPromptPopup').slideToggle();
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
popup.dlg.querySelector('#diffPrevPrompt').style.display='none';
|
diffPrevPrompt.style.display = 'none';
|
||||||
}
|
}
|
||||||
popup.dlg.querySelector('#copyPromptToClipboard').addEventListener('click', function () {
|
popup.dlg.querySelector('#copyPromptToClipboard').addEventListener('click', function () {
|
||||||
let rawPrompt = itemizedPrompts[PromptArrayItemForRawPromptDisplay].rawPrompt;
|
let rawPrompt = itemizedPrompts[PromptArrayItemForRawPromptDisplay].rawPrompt;
|
||||||
@ -4975,16 +4979,11 @@ async function promptItemize(itemizedPrompts, requestedMesId) {
|
|||||||
console.log(itemizedPrompts);
|
console.log(itemizedPrompts);
|
||||||
console.log(itemizedPrompts[PromptArrayItemForRawPromptDisplay].rawPrompt);
|
console.log(itemizedPrompts[PromptArrayItemForRawPromptDisplay].rawPrompt);
|
||||||
|
|
||||||
let rawPrompt = itemizedPrompts[PromptArrayItemForRawPromptDisplay].rawPrompt;
|
const rawPrompt = flatten(itemizedPrompts[PromptArrayItemForRawPromptDisplay].rawPrompt);
|
||||||
let rawPromptValues = rawPrompt;
|
|
||||||
|
|
||||||
if (Array.isArray(rawPrompt)) {
|
|
||||||
rawPromptValues = rawPrompt.map(x => x.content).join('\n');
|
|
||||||
}
|
|
||||||
|
|
||||||
//let DisplayStringifiedPrompt = JSON.stringify(itemizedPrompts[PromptArrayItemForRawPromptDisplay].rawPrompt).replace(/\n+/g, '<br>');
|
//let DisplayStringifiedPrompt = JSON.stringify(itemizedPrompts[PromptArrayItemForRawPromptDisplay].rawPrompt).replace(/\n+/g, '<br>');
|
||||||
const rawPromptWrapper = document.getElementById('rawPromptWrapper');
|
const rawPromptWrapper = document.getElementById('rawPromptWrapper');
|
||||||
rawPromptWrapper.innerText = rawPromptValues;
|
rawPromptWrapper.innerText = rawPrompt;
|
||||||
$('#rawPromptPopup').slideToggle();
|
$('#rawPromptPopup').slideToggle();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user