File size: 6,025 Bytes
c0bb696 6aae67a 3d14117 6aae67a 3d14117 6aae67a 3d14117 6aae67a 3d14117 c0bb696 6aae67a 3d14117 b570a90 6aae67a 3d14117 6aae67a 3d14117 6aae67a 3d14117 6aae67a 3d14117 6aae67a 3d14117 6aae67a 3d14117 6aae67a 3d14117 6aae67a 3d14117 6aae67a 3d14117 6aae67a 3d14117 6aae67a 3d14117 6aae67a 3d14117 6aae67a 3d14117 6aae67a b570a90 6aae67a b570a90 60ada88 c0bb696 3d14117 988e84f 6aae67a 60ada88 3d14117 60ada88 3d14117 60ada88 3d14117 60ada88 3d14117 60ada88 3d14117 60ada88 3d14117 60ada88 3d14117 60ada88 3d14117 988e84f 92d5c53 60ada88 988e84f 60ada88 92d5c53 6aae67a 60ada88 c0bb696 6aae67a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 |
/** @format */
// function removeTag(txt) {
// txt = txt.replace(/<<</g, " ").replace(/>>>/g, " ");
// txt = txt.replace(/<</g, "").replace(/>>/g, "");
// return txt;
// }
// function cleanDoc(s) {
// try {
// // Rimuove i tag HTML
// // s = removeTag(s);
// // Unisce le parole divise dal trattino a fine riga
// s = s.replace(/(\w+)-\s*\n(\w+)/g, '$1$2');
// // Rimuove caratteri non stampabili specifici
// const charsRm = /[\u00AD\u200B\u200C\u200D\u2060\uFEFF\u0008]/g;
// s = s.replace(charsRm, '');
// // Sostituisce spazi non standard e altri caratteri con uno spazio
// const charsSrp = /[\u00A0\u2000-\u200A\u202F\u205F\u3000\t\r\f\v]/g;
// s = s.replace(charsSrp, ' ');
// // Uniforma i caratteri di quotazione
// s = s.replace(/[“”]/g, '"');
// // Rimuove spazi prima della punteggiatura
// s = s.replace(/ +([.,;:!?])/g, '$1');
// // Rimuove spazi multipli
// s = s.replace(/ +/g, ' ');
// // Divide il testo in frasi
// const sentences = s.split(/(?<=[.?!])\s+/);
// const minLen = 5; // Ridotto a 5 per includere frasi più brevi ma valide
// s = sentences.filter(sentence => sentence.trim().length >= minLen).map(sentence => sentence.trim()).join('\n');
// // Rimuove spazi iniziali e finali
// return s.trim();
// } catch (e) {
// console.error(e);
// return "Errore di codifica del documento";
// }
// }
function removeTag(txt) {
txt = txt.replace(/<<</g, "").replace(/>>>/g, "");
txt = txt.replace(/<</g, "").replace(/>>/g, "");
return txt;
}
function cleanDoc(s) {
try {
s = s.replace(/`/g, "");
s = removeTag(s);
// Unisce le parole divise dal trattino a fine riga
s = s.replace(/(\w+)-\s*\n(\w+)/g, "$1$2");
// Rimuove caratteri non stampabili specifici
const charsRm = /[\u00AD\u200B\u200C\u200D\u2060\uFEFF\u0008]/g;
s = s.replace(charsRm, "");
// Sostituisce spazi non standard e altri caratteri con uno spazio
const charsSrp = /[\u00A0\u2000-\u200A\u202F\u205F\u3000\t\r\f\v]/g;
s = s.replace(charsSrp, " ");
// Mantieni le sequenze di escape comuni
s = s.replace(/\\([nrtfb])/g, "$1");
// Mantieni le sequenze Unicode
s = s.replace(/\\(u[0-9a-fA-F]{4}|x[0-9a-fA-F]{2})/g, "$1");
// Mantieni i backslash nei path di file
s = s.replace(/\\([a-zA-Z]:\\|\\\\[a-zA-Z0-9_]+\\)/g, "\\$1");
// Rimuovi tutti gli altri backslash
s = s.replace(/\\/g, "");
// Elimina le righe costituite dalla ripetizione di più di tre caratteri uguali
s = s.replace(/(.)\1{3,}/g, "");
// Uniforma i caratteri di quotazione
s = s.replace(/“/g, '"').replace(/”/g, '"');
// Rimpiazza newline
s = s.replace(/\n/g, " ");
// Rimuove spazi prima della punteggiatura
s = s.replace(/ +([.,;:!?])/g, "$1");
// Rimuove spazi multipli
s = s.replace(/ +/g, " ");
return s.trim();
} catch (e) {
console.error(e);
return "Errore di codifica del documento";
}
}
function cleanResponse(s) {
try {
// s=removeTag(s);
// Rimuove caratteri non stampabili specifici
const charsRm = /[\u00AD\u200B\u200C\u200D\u2060\uFEFF]/g;
s = s.replace(charsRm, "");
// Sostituisce spazi non standard e altri caratteri con uno spazio
const charsSrp = /[\u00A0\u2000-\u200A\u202F\u205F\u3000\t\r\f\v]/g;
s = s.replace(charsSrp, " ");
// Mantieni le sequenze di escape comuni
s = s.replace(/\\([nrtfb])/g, "$1");
// Mantieni le sequenze Unicode
s = s.replace(/\\(u[0-9a-fA-F]{4}|x[0-9a-fA-F]{2})/g, "$1");
// Mantieni i backslash nei path di file
s = s.replace(/\\([a-zA-Z]:\\|\\\\[a-zA-Z0-9_]+\\)/g, "\\\\$1");
// Rimuovi tutti gli altri backslash
s = s.replace(/\\/g, "");
// Sostituisce le sequenze di più di due newline con due newline
s = s.replace(/\n{3,}/g, "\n\n");
// unifica spazi multipli
s = s.replace(/ +/g, " ");
return s.trim();
} catch (e) {
console.error(e);
return `Errore di codifica nella risposta\n${e}`;
}
}
function answerFormtter(inputText) {
if (inputText.trim() == "") return "";
// Controlla se entrambi i tag # User e # Assistant sono presenti nel testo di input
const hasUserTag = inputText.includes("# User:");
const hasAssistantTag = inputText.includes("# Assistant:");
if (!hasUserTag || !hasAssistantTag) {
// Se almeno uno dei due tag non è presente, inserisci tutto in un unico div con classe assistant
return `<div class="assistant"><b>Assistant:</b><br>${inputText.split("\n").join("<br>")}</div>`;
}
// Altrimenti, procedi come prima
const lines = inputText.split("\n");
let currentSpeaker = null;
let resultHtml = "";
lines.forEach((line) => {
line = line.trim();
if (line.startsWith("# User:")) {
if (currentSpeaker) {
resultHtml += `</div>`;
}
currentSpeaker = "user";
resultHtml += `<div class="${currentSpeaker}"><b>User:</b>`;
} else if (line.startsWith("# Assistant:")) {
if (currentSpeaker) {
resultHtml += `</div>`;
}
currentSpeaker = "assistant";
resultHtml += `<div class="${currentSpeaker}"><b>Assistant:</b>`;
} else if (line.length > 0) {
if (currentSpeaker) {
resultHtml += `<br>${line}`;
}
}
});
if (currentSpeaker) {
resultHtml += `</div>`;
}
return resultHtml;
}
function textFormatter(txt) {
let plainText = txt.replace(/<[^>]*>/g, "");
let sentences = plainText.split(/([.!?:])(?=\s|$)/);
let text = "";
for (let i = 0; i < sentences.length; i += 2) {
let sentence = sentences[i];
let delimiter = sentences[i + 1] || "";
if (sentence.trim().length > 0) {
text += " " + sentence.trim() + delimiter;
}
if (i < sentences.length - 2) {
text += "\n";
}
}
text = text.replace(/User:/g, "\n\nUSER:\n");
text = text.replace(/Assistant:/g, "\n\nASSISTANT:\n");
return text.trim();
}
|