gmaterni commited on
Commit
3337974
1 Parent(s): 63657af

Upload folder using huggingface_hub

Browse files
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 = ["bWtkW0l+XX0=", "SXx2d1FxbVc=", "V1tRXlxneUY=", "flV6a1NdbUg=", "VllpUkc="];
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
- 3. Focalizzati sull'estrazione di concetti chiave e inferenze rilevanti per la domanda.
16
- 4. Seleziona citazioni specifiche direttamente collegate alla domanda.
17
- 5. Prepara una risposta chiara e dettagliata.
18
- 6. Inizia con una breve introduzione, sviluppa l'analisi, esponi le inferenze e concludi con una sintesi.
19
- 7. Cita le fonti quando è utile per chiarire informazioni o inferenze.
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 chiav:e
35
  - Citazioni:
36
  - Inferenze:
37
  - Dettagli rilevanti:
38
- - Conclusione:
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 e i concetti pertinenti alla domanda.
52
  2. Estrai i concetti chiave e fai inferenze ragionevoli.
53
  3. Organizza le informazioni in una struttura logica e coerente.
54
- 4. Prepara una risposta che riorganizzi i contenuti, dando priorità alle informazioni più importanti o rilevanti.
55
- 5. Includi una breve introduzione che presenti i temi principali.
56
- 6. Sviluppa l'analisi raggruppando le informazioni per argomenti correlati.
57
- 7. Presenta le inferenze e le connessioni tra i diversi concetti.
58
- 8. Includi, se rilevanti, dettagli specifici come nomi propri, termini tecnici, date o luoghi che contribuiscono alla precisione del contesto.
59
- 9. Concludi con una sintesi che riassuma i punti chiave e la struttura logica.
60
- 10. Evidenzia le connessioni tra contenuti estratti da fonti diverse.
61
- 11. Effettua un controllo finale per assicurarti che tutte le informazioni chiave siano state incluse.
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 chiav:e
76
  - Citazioni:
77
  - Inferenze:
78
  - Connessioni fra contenuti:
79
  - Dettagli rilevanti:
80
- - Conclusione:
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["bWtkW0l+XX0=","SXx2d1FxbVc=","V1tRXlxneUY=","flV6a1NdbUg=","VllpUkc="].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,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
- 3. Focalizzati sull'estrazione di concetti chiave e inferenze rilevanti per la domanda.
55
- 4. Seleziona citazioni specifiche direttamente collegate alla domanda.
56
- 5. Prepara una risposta chiara e dettagliata.
57
- 6. Inizia con una breve introduzione, sviluppa l'analisi, esponi le inferenze e concludi con una sintesi.
58
- 7. Cita le fonti quando \u00e8 utile per chiarire informazioni o inferenze.
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 chiav:e
74
  - Citazioni:
75
  - Inferenze:
76
  - Dettagli rilevanti:
77
- - Conclusione:
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 e i concetti pertinenti alla domanda.
87
  2. Estrai i concetti chiave e fai inferenze ragionevoli.
88
  3. Organizza le informazioni in una struttura logica e coerente.
89
- 4. Prepara una risposta che riorganizzi i contenuti, dando priorit\u00e0 alle informazioni pi\u00f9 importanti o rilevanti.
90
- 5. Includi una breve introduzione che presenti i temi principali.
91
- 6. Sviluppa l'analisi raggruppando le informazioni per argomenti correlati.
92
- 7. Presenta le inferenze e le connessioni tra i diversi concetti.
93
- 8. Includi, se rilevanti, dettagli specifici come nomi propri, termini tecnici, date o luoghi che contribuiscono alla precisione del contesto.
94
- 9. Concludi con una sintesi che riassuma i punti chiave e la struttura logica.
95
- 10. Evidenzia le connessioni tra contenuti estratti da fonti diverse.
96
- 11. Effettua un controllo finale per assicurarti che tutte le informazioni chiave siano state incluse.
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 chiav:e
111
  - Citazioni:
112
  - Inferenze:
113
  - Connessioni fra contenuti:
114
  - Dettagli rilevanti:
115
- - Conclusione:
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`