Fix for chat completion prompts

792c077267f7370bcfc6554ebb8a4b2cadb45fe3

Cohee <18619528+Cohee1207@users.noreply.github.com>

2 files changed, +24 -24Ignore whitespace
.eslintrc.js+1 -0
@@ -45,6 +45,7 @@ module.exports = {
45 Readability: 'readonly',45 Readability: 'readonly',
46 isProbablyReaderable: 'readonly',46 isProbablyReaderable: 'readonly',
47 ePub: 'readonly',47 ePub: 'readonly',
48 diff_match_patch: 'readonly',
48 },49 },
49 },50 },
50 ],51 ],
public/script.js+23 -24
@@ -4907,7 +4907,7 @@ export function findItemizedPromptSet(itemizedPrompts, incomingMesId) {
4907 console.log(`wanting to raw display of ArrayItem: ${PromptArrayItemForRawPromptDisplay} which is mesID ${incomingMesId}`);4907 console.log(`wanting to raw display of ArrayItem: ${PromptArrayItemForRawPromptDisplay} which is mesID ${incomingMesId}`);
4908 console.log(itemizedPrompts[thisPromptSet]);4908 console.log(itemizedPrompts[thisPromptSet]);
4909 break;4909 break;
4910 } else if (itemizedPrompts[i].rawPrompt){4910 } else if (itemizedPrompts[i].rawPrompt) {
4911 priorPromptArrayItemForRawPromptDisplay = i;4911 priorPromptArrayItemForRawPromptDisplay = i;
4912 }4912 }
4913 }4913 }
@@ -4927,35 +4927,39 @@ async function promptItemize(itemizedPrompts, requestedMesId) {
4927 }4927 }
49284928
4929 const params = await itemizedParams(itemizedPrompts, thisPromptSet);4929 const params = await itemizedParams(itemizedPrompts, thisPromptSet);
4930 const flatten = (rawPrompt) => Array.isArray(rawPrompt) ? rawPrompt.map(x => x.content).join('\n') : rawPrompt;
49304931
4931 const template = params.this_main_api == 'openai'4932 const template = params.this_main_api == 'openai'
4932 ? await renderTemplateAsync('itemizationChat', params)4933 ? await renderTemplateAsync('itemizationChat', params)
4933 : await renderTemplateAsync('itemizationText', params);4934 : await renderTemplateAsync('itemizationText', params);
49344935
4935 const popup = new Popup(template, POPUP_TYPE.TEXT);4936 const popup = new Popup(template, POPUP_TYPE.TEXT);
4936 if (priorPromptArrayItemForRawPromptDisplay){4937
4937 popup.dlg.querySelector('#diffPrevPrompt').style.display='';4938 /** @type {HTMLElement} */
4938 popup.dlg.querySelector('#diffPrevPrompt').addEventListener('click', function () {4939 const diffPrevPrompt = popup.dlg.querySelector('#diffPrevPrompt');
4939 var dmp = new diff_match_patch();4940 if (priorPromptArrayItemForRawPromptDisplay) {
4940 var text1 = itemizedPrompts[priorPromptArrayItemForRawPromptDisplay].rawPrompt;4941 diffPrevPrompt.style.display = '';
4941 var text2 = itemizedPrompts[PromptArrayItemForRawPromptDisplay].rawPrompt;4942 diffPrevPrompt.addEventListener('click', function () {
4943 const dmp = new diff_match_patch();
4944 const text1 = flatten(itemizedPrompts[priorPromptArrayItemForRawPromptDisplay].rawPrompt);
4945 const text2 = flatten(itemizedPrompts[PromptArrayItemForRawPromptDisplay].rawPrompt);
49424946
4943 dmp.Diff_Timeout = 2.0;4947 dmp.Diff_Timeout = 2.0;
4944
4945 var d = dmp.diff_main(text1, text2);
4946 var ds = dmp.diff_prettyHtml(d);
49474948
4949 const d = dmp.diff_main(text1, text2);
4950 let ds = dmp.diff_prettyHtml(d);
4948 // make it readable4951 // make it readable
4949 ds = ds.replaceAll("background:#e6ffe6;", "background:#b9f3b9; color:black;");4952 ds = ds.replaceAll('background:#e6ffe6;', 'background:#b9f3b9; color:black;');
4950 ds = ds.replaceAll("background:#ffe6e6;", "background:#f5b4b4; color:black;");4953 ds = ds.replaceAll('background:#ffe6e6;', 'background:#f5b4b4; color:black;');
4951 ds = ds.replaceAll("&para;", "");4954 ds = ds.replaceAll('&para;', '');
4952 ds = "<div style='display:block;'>" + ds + "</div>";4955 const container = document.createElement('div');
4956 container.innerHTML = DOMPurify.sanitize(ds);
4953 const rawPromptWrapper = document.getElementById('rawPromptWrapper');4957 const rawPromptWrapper = document.getElementById('rawPromptWrapper');
4954 rawPromptWrapper.innerHTML = ds;4958 rawPromptWrapper.replaceChildren(container);
4955 $('#rawPromptPopup').slideToggle(); 4959 $('#rawPromptPopup').slideToggle();
4956 });4960 });
4957 } else {4961 } else {
4958 popup.dlg.querySelector('#diffPrevPrompt').style.display='none';4962 diffPrevPrompt.style.display = 'none';
4959 }4963 }
4960 popup.dlg.querySelector('#copyPromptToClipboard').addEventListener('click', function () {4964 popup.dlg.querySelector('#copyPromptToClipboard').addEventListener('click', function () {
4961 let rawPrompt = itemizedPrompts[PromptArrayItemForRawPromptDisplay].rawPrompt;4965 let rawPrompt = itemizedPrompts[PromptArrayItemForRawPromptDisplay].rawPrompt;
@@ -4975,16 +4979,11 @@ async function promptItemize(itemizedPrompts, requestedMesId) {
4975 console.log(itemizedPrompts);4979 console.log(itemizedPrompts);
4976 console.log(itemizedPrompts[PromptArrayItemForRawPromptDisplay].rawPrompt);4980 console.log(itemizedPrompts[PromptArrayItemForRawPromptDisplay].rawPrompt);
49774981
4978 let rawPrompt = itemizedPrompts[PromptArrayItemForRawPromptDisplay].rawPrompt;4982 const rawPrompt = flatten(itemizedPrompts[PromptArrayItemForRawPromptDisplay].rawPrompt);
4979 let rawPromptValues = rawPrompt;
4980
4981 if (Array.isArray(rawPrompt)) {
4982 rawPromptValues = rawPrompt.map(x => x.content).join('\n');
4983 }
49844983
4985 //let DisplayStringifiedPrompt = JSON.stringify(itemizedPrompts[PromptArrayItemForRawPromptDisplay].rawPrompt).replace(/\n+/g, '<br>');4984 //let DisplayStringifiedPrompt = JSON.stringify(itemizedPrompts[PromptArrayItemForRawPromptDisplay].rawPrompt).replace(/\n+/g, '<br>');
4986 const rawPromptWrapper = document.getElementById('rawPromptWrapper');4985 const rawPromptWrapper = document.getElementById('rawPromptWrapper');
4987 rawPromptWrapper.innerText = rawPromptValues;4986 rawPromptWrapper.innerText = rawPrompt;
4988 $('#rawPromptPopup').slideToggle();4987 $('#rawPromptPopup').slideToggle();
4989 });4988 });
49904989