File size: 5,365 Bytes
c0bb696 60ada88 3d14117 60ada88 3d14117 c0bb696 3d14117 b570a90 3d14117 b570a90 3d14117 b570a90 60ada88 c0bb696 3d14117 988e84f 3d14117 60ada88 3d14117 60ada88 3d14117 60ada88 3d14117 60ada88 3d14117 60ada88 3d14117 60ada88 3d14117 60ada88 3d14117 60ada88 3d14117 988e84f 92d5c53 60ada88 988e84f 60ada88 92d5c53 60ada88 92d5c53 60ada88 92d5c53 60ada88 92d5c53 60ada88 92d5c53 60ada88 92d5c53 60ada88 c0bb696 988e84f 60ada88 |
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 |
/** @format */
function removeTag(txt) {
txt = txt.replace(/<<</g, " ").replace(/>>>/g, " ");
txt = txt.replace(/<</g, "").replace(/>>/g, "");
return txt;
}
// function uniteBrokenWords(txt) {
// const regex = /-\n/g;
// const unitedText = txt.replace(regex, "");
// return unitedText;
// }
// function cleanDoc(txt) {
// try {
// txt = removeTag(txt);
// //unisce le parole spezzate a di fine riga
// txt = txt.replace(/-\n/g, "");
// // Rimuove caratteri non stampabili specifici
// const charsRm = /[\u00AD\u200B\u200C\u200D\u2060\uFEFF]/g;
// txt = txt.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;
// txt = txt.replace(charsSrp, " ");
// // Mantieni le sequenze di escape comuni
// txt = txt.replace(/\\([nrtfb])/g, "$1");
// // Mantieni le sequenze Unicode
// txt = txt.replace(/\\(u[0-9a-fA-F]{4}|x[0-9a-fA-F]{2})/g, "$1");
// // Mantieni i backslash nei path di file
// txt = txt.replace(/\\([a-zA-Z]:\\|\\\\[a-zA-Z0-9_]+\\)/g, "\\\\$1");
// // Rimuovi tutti gli altri backslash
// txt = txt.replace(/\\/g, "");
// // Uniforma i caratteri di quotazione
// txt = txt.replace(/“/g, '"').replace(/”/g, '"');
// // Rimuove spazi prima della punteggiatura
// txt = txt.replace(/ +([.,;:!?])/g, "$1");
// // Rimuove linee vuote multiple
// txt = txt.replace(/\n\s*\n/g, "\n\n");
// txt = txt.replace(/\n{3,}/g, "\n\n");
// // Rimuove spazi multipli
// txt = txt.replace(/ +/g, " ");
// return txt.trim();
// } catch (e) {
// console.error(e);
// return "Errore di codifica del documento";
// }
// }
function cleanDoc(s) {
try {
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, '');
// Uniforma i caratteri di quotazione
s = s.replace('“', '"').replace('”', '"');
// Rimpiazza newline
s = s.replace(/\n/g, ' ');
// Rimuove spazi prima della punteggiatura
s = s.replace(/ +([.,;:!?])/g, '$1');
// Divide il testo in frasi
const sentences = s.split(/(?<=[.?!])\s+/);
const minLen = 5;
s = sentences.filter(sentence => sentence.trim().length >= minLen).map(sentence => sentence.trim()).join('\n');
// 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 cleanOut(txt) {
// Formatta gli elenchi puntati per una migliore leggibilità
// txt = txt.replace(/^(\s*[-*•])(\s*)/gm, "\n$1 ");
// Formatta gli elenchi numerati per una migliore leggibilità
// txt = txt.replace(/^(\s*\d+\.)(\s*)/gm, "\n$1 ");
// Aggiunge una riga vuota prima e dopo i blocchi di codice
// txt = txt.replace(/(```[\s\S]*?```)/g, "\n\n$1\n\n");
// Aggiunge un'andata a capo dopo ogni punto, eccetto quando seguito da newline o fine stringa
// txt = txt.replace(/\.(?!\n|$)/g, ".\n");
// Sostituisce le sequenze di più di due newline con due newline
txt = txt.replace(/\n{3,}/g, "\n\n");
// Rimuove gli spazi bianchi extra alla fine di ogni riga
// txt = txt.replace(/ +/g, " ");
// txt = txt.replace(/\s+$/gm, "");
return txt;
}
// <<<doc_name>>> => Documento: doc_name
// function subResponseDOcTag(txt) {
// const regex = /<<<(.*?)>>>/;
// const result = txt.replace(regex, (match, p1) => `Documento: ${p1}`);
// return result;
// }
|