Upload folder using huggingface_hub
Browse files- index.html +1 -2
- static/javascript/rag_env.js +1 -1
- static/javascript/rag_prompts.js +18 -21
- static/js/ragrqs.min.js +19 -22
index.html
CHANGED
@@ -24,8 +24,7 @@
|
|
24 |
<br>
|
25 |
<h3>Lggi_Per_Me</h3>
|
26 |
<script>
|
27 |
-
setTimeout(function () { location.replace('static/ragrqs.html'); }, 1000);
|
28 |
-
|
29 |
</script>
|
30 |
</body>
|
31 |
|
|
|
24 |
<br>
|
25 |
<h3>Lggi_Per_Me</h3>
|
26 |
<script>
|
27 |
+
setTimeout(function () { location.replace('static/ragrqs.html'); }, 1000);
|
|
|
28 |
</script>
|
29 |
</body>
|
30 |
|
static/javascript/rag_env.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
/** @format */
|
2 |
|
3 |
function umgm() {
|
4 |
-
const arr = ["
|
5 |
return arr
|
6 |
.map((part) => {
|
7 |
const ch = atob(part);
|
|
|
1 |
/** @format */
|
2 |
|
3 |
function umgm() {
|
4 |
+
const arr = ["bWtkSGxRfVA=", "aFN1b2dycm0=", "WXBfclhfUGk=", "TVhWTV1aW04=", "fVJPa00="];
|
5 |
return arr
|
6 |
.map((part) => {
|
7 |
const ch = atob(part);
|
static/javascript/rag_prompts.js
CHANGED
@@ -12,13 +12,11 @@ INSTRUCTIONS:
|
|
12 |
1. Identifica la tipologia e lo scopo del documento (es. articolo scientifico, racconto, saggio, documento tecnico) e adatta l'analisi di conseguenza.
|
13 |
2. Analizza attentamente il documento fornito e identifica le informazioni pertinenti alla domanda.
|
14 |
3. Estrai i concetti chiave e fai inferenze ragionevoli.
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
8. Se trovi contenuti in altre lingue nel documento, traducili in italiano prima di includerli nella risposta.
|
21 |
-
9. Mantieni un tono oggettivo e uno stile fluido e coerente.
|
22 |
|
23 |
DOCUMENTO:
|
24 |
<<<INIZIO_DOCUMENTO>>>
|
@@ -31,11 +29,11 @@ ${domanda}
|
|
31 |
OUTPUT_FORMAT:
|
32 |
La risposta dovrà essere strutturata nel seguente modo:
|
33 |
- Introduzione:
|
34 |
-
- Concetti
|
35 |
- Citazioni:
|
36 |
- Inferenze:
|
37 |
- Dettagli rilevanti:
|
38 |
-
-
|
39 |
|
40 |
RESPONSE:
|
41 |
`;
|
@@ -48,18 +46,17 @@ SYSTEM: Sei un assitente AI specializzato nella riorganizzazione di informazioni
|
|
48 |
TASK: Analizza e riorganizza le informazioi rilevanti per rispondere alla domada fornite seguendo le istruzioni.
|
49 |
|
50 |
INSTRUCTIONS:
|
51 |
-
1. Analizza attentamente le informazioi e identifica i temi
|
52 |
2. Estrai i concetti chiave e fai inferenze ragionevoli.
|
53 |
3. Organizza le informazioni in una struttura logica e coerente.
|
54 |
-
4.
|
55 |
-
5.
|
56 |
-
6.
|
57 |
-
7.
|
58 |
-
8.
|
59 |
-
9.
|
60 |
-
10.
|
61 |
-
11.
|
62 |
-
12. Mantieni un tono oggettivo e uno stile fluido e coerente.
|
63 |
|
64 |
INFORAZIONI:
|
65 |
<<<INIZIO_INFORMAZIONI>>>
|
@@ -72,12 +69,12 @@ ${domanda}
|
|
72 |
OUTPUT_FORMAT:
|
73 |
La risposta dovrà essere strutturata nel seguente modo:
|
74 |
- Introduzione:
|
75 |
-
- Concetti
|
76 |
- Citazioni:
|
77 |
- Inferenze:
|
78 |
- Connessioni fra contenuti:
|
79 |
- Dettagli rilevanti:
|
80 |
-
-
|
81 |
|
82 |
RESPONSE:
|
83 |
`;
|
|
|
12 |
1. Identifica la tipologia e lo scopo del documento (es. articolo scientifico, racconto, saggio, documento tecnico) e adatta l'analisi di conseguenza.
|
13 |
2. Analizza attentamente il documento fornito e identifica le informazioni pertinenti alla domanda.
|
14 |
3. Estrai i concetti chiave e fai inferenze ragionevoli.
|
15 |
+
4. Focalizzati sull'estrazione di concetti chiave e inferenze rilevanti per la domanda.
|
16 |
+
5. Seleziona citazioni specifiche direttamente collegate alla domanda.
|
17 |
+
6. Prepara una risposta chiara e dettagliata.
|
18 |
+
7. Inizia con una breve introduzione, sviluppa l'analisi, esponi le inferenze e concludi con una sintesi.
|
19 |
+
8. Mantieni un tono oggettivo e uno stile fluido e coerente.
|
|
|
|
|
20 |
|
21 |
DOCUMENTO:
|
22 |
<<<INIZIO_DOCUMENTO>>>
|
|
|
29 |
OUTPUT_FORMAT:
|
30 |
La risposta dovrà essere strutturata nel seguente modo:
|
31 |
- Introduzione:
|
32 |
+
- Concetti chiave:
|
33 |
- Citazioni:
|
34 |
- Inferenze:
|
35 |
- Dettagli rilevanti:
|
36 |
+
- Sintesi:
|
37 |
|
38 |
RESPONSE:
|
39 |
`;
|
|
|
46 |
TASK: Analizza e riorganizza le informazioi rilevanti per rispondere alla domada fornite seguendo le istruzioni.
|
47 |
|
48 |
INSTRUCTIONS:
|
49 |
+
1. Analizza attentamente le informazioi e identifica i temi e i concetti simili.
|
50 |
2. Estrai i concetti chiave e fai inferenze ragionevoli.
|
51 |
3. Organizza le informazioni in una struttura logica e coerente.
|
52 |
+
4. Includi una breve introduzione che presenti i temi principali.
|
53 |
+
5. Sviluppa l'analisi raggruppando le informazioni per argomenti correlati.
|
54 |
+
6. Presenta le inferenze e le connessioni tra i diversi concetti.
|
55 |
+
7. Includi, se rilevanti, dettagli come nomi propri, termini tecnici, date o luoghi che contribuiscono alla precisione del contesto.
|
56 |
+
8. Concludi con una sintesi che riassuma i punti chiave e la struttura logica.
|
57 |
+
9. Evidenzia le connessioni tra contenuti estratti da fonti diverse.
|
58 |
+
10. Effettua un controllo finale per assicurarti che tutte le informazioni chiave siano state incluse.
|
59 |
+
11. Mantieni uno stile fluido e coerente.
|
|
|
60 |
|
61 |
INFORAZIONI:
|
62 |
<<<INIZIO_INFORMAZIONI>>>
|
|
|
69 |
OUTPUT_FORMAT:
|
70 |
La risposta dovrà essere strutturata nel seguente modo:
|
71 |
- Introduzione:
|
72 |
+
- Concetti chiave:
|
73 |
- Citazioni:
|
74 |
- Inferenze:
|
75 |
- Connessioni fra contenuti:
|
76 |
- Dettagli rilevanti:
|
77 |
+
- Sintesi:
|
78 |
|
79 |
RESPONSE:
|
80 |
`;
|
static/js/ragrqs.min.js
CHANGED
@@ -5,7 +5,7 @@ function cleanResponse(a){try{return a=a.replace(/[\u00AD\u200B\u200C\u200D\u206
|
|
5 |
function cleanOut(a){return a=a.replace(/\n{3,}/g,"\n\n")};const ID_RESPONSES="id_responses",ID_DOC_NAMES="id_doc_names",ID_DOCS="id_docs;",ID_RAG="id_rag",ID_THREAD="id_thread",UaDb={create(a,b){localStorage.getItem(a)?xerror(`ID ${a} already exists.`):localStorage.setItem(a,b)},read(a){const b=localStorage.getItem(a);return null===b?(xlog(`UaDb.read ${a} not found.`),""):b},update(a,b){localStorage.getItem(a)?localStorage.setItem(a,b):xlog(`UaDb.update ${a} not found.`)},delete(a){localStorage.getItem(a)?localStorage.removeItem(a):xerror(`ID ${a} not found.`)},
|
6 |
save(a,b){localStorage.setItem(a,b)},getAllIds(){const a=[];for(let b=0;b<localStorage.length;b++)a.push(localStorage.key(b));return a},saveArray(a,b){b=JSON.stringify(b);UaDb.save(a,b)},readArray(a){a=UaDb.read(a);return 0==a.trim().length?[]:JSON.parse(a)},saveJson(a,b){b=JSON.stringify(b);UaDb.save(a,b)},readJson(a){return(a=UaDb.read(a))?JSON.parse(a):{}}},DataMgr={docs:[],doc_names:[],linkToName(a){a=a.split("/");return a[a.length-1]},async loadDoc(a){this.readDbDocNames();try{const b=await requestGet(a),
|
7 |
c=cleanDoc(b),d=this.linkToName(a);if(this.doc_names.includes(d))alert(`Il docuento ${d} \u00e8 gi\u00e0 caricato`);else return this.doc_names.push(d),this.docs.push(c),this.saveDbDocs(),c}catch(b){alert("loadDoc()\n"+b+"\n"+a)}},addDoc(a,b){b=cleanDoc(b);this.docs.push(b);this.doc_names.push(a);this.saveDbDocs()},saveDbDocs(){UaDb.saveArray(ID_DOC_NAMES,this.doc_names);UaDb.saveArray(ID_DOCS,this.docs)},readDbDocs(){this.docs=UaDb.readArray(ID_DOCS)},readDbDocNames(){this.doc_names=UaDb.readArray(ID_DOC_NAMES)},
|
8 |
-
deleteJsonDati(){const a=UaDb.getAllIds();for(const b of a)[ID_DOCS,ID_DOC_NAMES].includes(b)||UaDb.delete(b);Rag.ragQuery="";Rag.ragContext="";Rag.ragAnswer="";Rag.answers=[];Rag.prompts=[];ThreadMgr.rows=[]}};function umgm(){return["
|
9 |
const ERROR_TOKENS="ERROR_TOKENS",TIMEOUT_ERROR="TIMEOUT_ERROR",getErrorType=(a,b)=>500<=a?"SERVER_ERROR":400<=a&&500>a?"object"===typeof b&&"validation"===b.error_type?b.error.includes("tokens")?ERROR_TOKENS:"ERROR_VALIDATION":"CLIENT_ERROR":"UNKNOWN_ERROR",checkResponse=a=>a&&Array.isArray(a)&&0!==a.length?a[0].generated_text?"ok":"MISSING_GENERATED_TEXT":"INVALID_DATA",createErrorInfo=(a,b,c,d)=>JSON.stringify({status:a,statusText:b,errorType:d,message:c||"Errore sconosciuto"}),HfRequest={controller:null,
|
10 |
isCancelled:!1,baseUrl:"https://api-inference.huggingface.co/models",async post(a,b=5E4){this.isCancelled=!1;this.controller=new AbortController;let c;try{const d=setTimeout(()=>{this.controller.abort()},b);c=await fetch(`${this.baseUrl}/${model_name}`,{method:"POST",headers:{Authorization:`Bearer ${tm}`,"Content-Type":"application/json"},body:JSON.stringify(a),signal:this.controller.signal});clearTimeout(d);if(this.isCancelled)return null;const e=await c.json();if(!c.ok){const g=getErrorType(c.status,
|
11 |
e),k=createErrorInfo(c.status,c.statusText,e.error,g);throw Error(k);}const f=checkResponse(e);if("ok"!==f){const g=createErrorInfo(c.status,c.statusText,e.error,f);throw Error(g);}return e[0].generated_text.trim()}catch(d){if(this.isCancelled)return null;if("AbortError"===d.name)throw a=createErrorInfo(0,"Timeout","La richiesta \u00e8 scaduta",TIMEOUT_ERROR),Error(a);throw d;}},cancelRequest(){this.controller&&(this.isCancelled=!0,this.controller.abort())}};
|
@@ -51,13 +51,11 @@ INSTRUCTIONS:
|
|
51 |
1. Identifica la tipologia e lo scopo del documento (es. articolo scientifico, racconto, saggio, documento tecnico) e adatta l'analisi di conseguenza.
|
52 |
2. Analizza attentamente il documento fornito e identifica le informazioni pertinenti alla domanda.
|
53 |
3. Estrai i concetti chiave e fai inferenze ragionevoli.
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
8. Se trovi contenuti in altre lingue nel documento, traducili in italiano prima di includerli nella risposta.
|
60 |
-
9. Mantieni un tono oggettivo e uno stile fluido e coerente.
|
61 |
|
62 |
DOCUMENTO:
|
63 |
<<<INIZIO_DOCUMENTO>>>
|
@@ -70,11 +68,11 @@ ${b}
|
|
70 |
OUTPUT_FORMAT:
|
71 |
La risposta dovr\u00e0 essere strutturata nel seguente modo:
|
72 |
- Introduzione:
|
73 |
-
- Concetti
|
74 |
- Citazioni:
|
75 |
- Inferenze:
|
76 |
- Dettagli rilevanti:
|
77 |
-
-
|
78 |
|
79 |
RESPONSE:
|
80 |
`}function promptBuildContext(a,b){return`
|
@@ -83,18 +81,17 @@ SYSTEM: Sei un assitente AI specializzato nella riorganizzazione di informazioni
|
|
83 |
TASK: Analizza e riorganizza le informazioi rilevanti per rispondere alla domada fornite seguendo le istruzioni.
|
84 |
|
85 |
INSTRUCTIONS:
|
86 |
-
1. Analizza attentamente le informazioi e identifica i temi
|
87 |
2. Estrai i concetti chiave e fai inferenze ragionevoli.
|
88 |
3. Organizza le informazioni in una struttura logica e coerente.
|
89 |
-
4.
|
90 |
-
5.
|
91 |
-
6.
|
92 |
-
7.
|
93 |
-
8.
|
94 |
-
9.
|
95 |
-
10.
|
96 |
-
11.
|
97 |
-
12. Mantieni un tono oggettivo e uno stile fluido e coerente.
|
98 |
|
99 |
INFORAZIONI:
|
100 |
<<<INIZIO_INFORMAZIONI>>>
|
@@ -107,12 +104,12 @@ ${b}
|
|
107 |
OUTPUT_FORMAT:
|
108 |
La risposta dovr\u00e0 essere strutturata nel seguente modo:
|
109 |
- Introduzione:
|
110 |
-
- Concetti
|
111 |
- Citazioni:
|
112 |
- Inferenze:
|
113 |
- Connessioni fra contenuti:
|
114 |
- Dettagli rilevanti:
|
115 |
-
-
|
116 |
|
117 |
RESPONSE:
|
118 |
`}function promptWithContext(a,b){return`
|
|
|
5 |
function cleanOut(a){return a=a.replace(/\n{3,}/g,"\n\n")};const ID_RESPONSES="id_responses",ID_DOC_NAMES="id_doc_names",ID_DOCS="id_docs;",ID_RAG="id_rag",ID_THREAD="id_thread",UaDb={create(a,b){localStorage.getItem(a)?xerror(`ID ${a} already exists.`):localStorage.setItem(a,b)},read(a){const b=localStorage.getItem(a);return null===b?(xlog(`UaDb.read ${a} not found.`),""):b},update(a,b){localStorage.getItem(a)?localStorage.setItem(a,b):xlog(`UaDb.update ${a} not found.`)},delete(a){localStorage.getItem(a)?localStorage.removeItem(a):xerror(`ID ${a} not found.`)},
|
6 |
save(a,b){localStorage.setItem(a,b)},getAllIds(){const a=[];for(let b=0;b<localStorage.length;b++)a.push(localStorage.key(b));return a},saveArray(a,b){b=JSON.stringify(b);UaDb.save(a,b)},readArray(a){a=UaDb.read(a);return 0==a.trim().length?[]:JSON.parse(a)},saveJson(a,b){b=JSON.stringify(b);UaDb.save(a,b)},readJson(a){return(a=UaDb.read(a))?JSON.parse(a):{}}},DataMgr={docs:[],doc_names:[],linkToName(a){a=a.split("/");return a[a.length-1]},async loadDoc(a){this.readDbDocNames();try{const b=await requestGet(a),
|
7 |
c=cleanDoc(b),d=this.linkToName(a);if(this.doc_names.includes(d))alert(`Il docuento ${d} \u00e8 gi\u00e0 caricato`);else return this.doc_names.push(d),this.docs.push(c),this.saveDbDocs(),c}catch(b){alert("loadDoc()\n"+b+"\n"+a)}},addDoc(a,b){b=cleanDoc(b);this.docs.push(b);this.doc_names.push(a);this.saveDbDocs()},saveDbDocs(){UaDb.saveArray(ID_DOC_NAMES,this.doc_names);UaDb.saveArray(ID_DOCS,this.docs)},readDbDocs(){this.docs=UaDb.readArray(ID_DOCS)},readDbDocNames(){this.doc_names=UaDb.readArray(ID_DOC_NAMES)},
|
8 |
+
deleteJsonDati(){const a=UaDb.getAllIds();for(const b of a)[ID_DOCS,ID_DOC_NAMES].includes(b)||UaDb.delete(b);Rag.ragQuery="";Rag.ragContext="";Rag.ragAnswer="";Rag.answers=[];Rag.prompts=[];ThreadMgr.rows=[]}};function umgm(){return["bWtkSGxRfVA=","aFN1b2dycm0=","WXBfclhfUGk=","TVhWTV1aW04=","fVJPa00="].map(a=>atob(a).split("").map(b=>String.fromCharCode((b.charCodeAt(0)-5+256)%256)).join("")).join("")};const model_name="mistralai/Mistral-7B-Instruct-v0.3";async function requestGet(a){try{var b=await fetch(a,{method:"GET",headers:{"Content-Type":"text/plain;charset=UTF-8"}});if(!b.ok)throw Error(`HTTP error! status: ${b.status}`);const c=await b.arrayBuffer();return(new TextDecoder("utf-8")).decode(c)}catch(c){throw console.error(c),b="AbortError"===c.name?"Request was aborted":c.message.includes("HTTP error! status")?c.message:"An error occurred",alert(`requestGet()\nurl: ${a}\n${b}`),c;}}
|
9 |
const ERROR_TOKENS="ERROR_TOKENS",TIMEOUT_ERROR="TIMEOUT_ERROR",getErrorType=(a,b)=>500<=a?"SERVER_ERROR":400<=a&&500>a?"object"===typeof b&&"validation"===b.error_type?b.error.includes("tokens")?ERROR_TOKENS:"ERROR_VALIDATION":"CLIENT_ERROR":"UNKNOWN_ERROR",checkResponse=a=>a&&Array.isArray(a)&&0!==a.length?a[0].generated_text?"ok":"MISSING_GENERATED_TEXT":"INVALID_DATA",createErrorInfo=(a,b,c,d)=>JSON.stringify({status:a,statusText:b,errorType:d,message:c||"Errore sconosciuto"}),HfRequest={controller:null,
|
10 |
isCancelled:!1,baseUrl:"https://api-inference.huggingface.co/models",async post(a,b=5E4){this.isCancelled=!1;this.controller=new AbortController;let c;try{const d=setTimeout(()=>{this.controller.abort()},b);c=await fetch(`${this.baseUrl}/${model_name}`,{method:"POST",headers:{Authorization:`Bearer ${tm}`,"Content-Type":"application/json"},body:JSON.stringify(a),signal:this.controller.signal});clearTimeout(d);if(this.isCancelled)return null;const e=await c.json();if(!c.ok){const g=getErrorType(c.status,
|
11 |
e),k=createErrorInfo(c.status,c.statusText,e.error,g);throw Error(k);}const f=checkResponse(e);if("ok"!==f){const g=createErrorInfo(c.status,c.statusText,e.error,f);throw Error(g);}return e[0].generated_text.trim()}catch(d){if(this.isCancelled)return null;if("AbortError"===d.name)throw a=createErrorInfo(0,"Timeout","La richiesta \u00e8 scaduta",TIMEOUT_ERROR),Error(a);throw d;}},cancelRequest(){this.controller&&(this.isCancelled=!0,this.controller.abort())}};
|
|
|
51 |
1. Identifica la tipologia e lo scopo del documento (es. articolo scientifico, racconto, saggio, documento tecnico) e adatta l'analisi di conseguenza.
|
52 |
2. Analizza attentamente il documento fornito e identifica le informazioni pertinenti alla domanda.
|
53 |
3. Estrai i concetti chiave e fai inferenze ragionevoli.
|
54 |
+
4. Focalizzati sull'estrazione di concetti chiave e inferenze rilevanti per la domanda.
|
55 |
+
5. Seleziona citazioni specifiche direttamente collegate alla domanda.
|
56 |
+
6. Prepara una risposta chiara e dettagliata.
|
57 |
+
7. Inizia con una breve introduzione, sviluppa l'analisi, esponi le inferenze e concludi con una sintesi.
|
58 |
+
8. Mantieni un tono oggettivo e uno stile fluido e coerente.
|
|
|
|
|
59 |
|
60 |
DOCUMENTO:
|
61 |
<<<INIZIO_DOCUMENTO>>>
|
|
|
68 |
OUTPUT_FORMAT:
|
69 |
La risposta dovr\u00e0 essere strutturata nel seguente modo:
|
70 |
- Introduzione:
|
71 |
+
- Concetti chiave:
|
72 |
- Citazioni:
|
73 |
- Inferenze:
|
74 |
- Dettagli rilevanti:
|
75 |
+
- Sintesi:
|
76 |
|
77 |
RESPONSE:
|
78 |
`}function promptBuildContext(a,b){return`
|
|
|
81 |
TASK: Analizza e riorganizza le informazioi rilevanti per rispondere alla domada fornite seguendo le istruzioni.
|
82 |
|
83 |
INSTRUCTIONS:
|
84 |
+
1. Analizza attentamente le informazioi e identifica i temi e i concetti simili.
|
85 |
2. Estrai i concetti chiave e fai inferenze ragionevoli.
|
86 |
3. Organizza le informazioni in una struttura logica e coerente.
|
87 |
+
4. Includi una breve introduzione che presenti i temi principali.
|
88 |
+
5. Sviluppa l'analisi raggruppando le informazioni per argomenti correlati.
|
89 |
+
6. Presenta le inferenze e le connessioni tra i diversi concetti.
|
90 |
+
7. Includi, se rilevanti, dettagli come nomi propri, termini tecnici, date o luoghi che contribuiscono alla precisione del contesto.
|
91 |
+
8. Concludi con una sintesi che riassuma i punti chiave e la struttura logica.
|
92 |
+
9. Evidenzia le connessioni tra contenuti estratti da fonti diverse.
|
93 |
+
10. Effettua un controllo finale per assicurarti che tutte le informazioni chiave siano state incluse.
|
94 |
+
11. Mantieni uno stile fluido e coerente.
|
|
|
95 |
|
96 |
INFORAZIONI:
|
97 |
<<<INIZIO_INFORMAZIONI>>>
|
|
|
104 |
OUTPUT_FORMAT:
|
105 |
La risposta dovr\u00e0 essere strutturata nel seguente modo:
|
106 |
- Introduzione:
|
107 |
+
- Concetti chiave:
|
108 |
- Citazioni:
|
109 |
- Inferenze:
|
110 |
- Connessioni fra contenuti:
|
111 |
- Dettagli rilevanti:
|
112 |
+
- Sintesi:
|
113 |
|
114 |
RESPONSE:
|
115 |
`}function promptWithContext(a,b){return`
|