File size: 11,633 Bytes
b570a90
6aae67a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13d722a
6aae67a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13d722a
 
6aae67a
 
92d5c53
6aae67a
6104c20
 
92d5c53
6aae67a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13d722a
6aae67a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13d722a
6aae67a
13d722a
 
 
c0bb696
 
6aae67a
 
b570a90
6aae67a
 
b570a90
6aae67a
 
3d14117
 
 
6aae67a
b570a90
6aae67a
c0bb696
 
6aae67a
 
c0bb696
6aae67a
 
c0bb696
6aae67a
60ada88
c0bb696
 
b570a90
c0bb696
6aae67a
 
b570a90
6aae67a
 
98b4260
6aae67a
 
b570a90
 
669d0be
3d14117
669d0be
6aae67a
 
 
b570a90
6aae67a
c0bb696
 
6aae67a
c0bb696
 
6aae67a
 
c0bb696
6aae67a
 
c0bb696
6aae67a
60ada88
c0bb696
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
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
/** @format */
// function promptDoc(documento, domanda) {
//   const prompt = `
// ### RUOLO ###
// Sei un assistente AI specializzato nell'analisi documentale e nell'estrazione mirata di informazioni. Operi esclusivamente in italiano.

// ### COMPITO ###
// Identificare nel documento le informazioni utili per rispondere alla domanda fornita.

// ### ISTRUZIONI ###
// 1. Analizza il documento fornito in modo sequenziale.
// 2. Interpreta la domanda in relazione al contenuto del documento.
// 3. Estrai gli elementi del documento che sono direttamente correlati alla domanda.
// 4. Includi dettagli specifici (dati, citazioni, eventi, personaggi, luoghi, ecc.) se correlati alla domanda.
// 5. Escludi meta-dati, inferenze non testuali e informazioni marginali

// ### FORMATO_RISPOSTA ###
// La risposta deve rispettare le seguenti specifiche:
// 1. Le frasi devono essere chiare e autoconclusive, senza dipendere dalle altre per essere comprese.
// 2. Struttura a blocchi di testo separati da una riga vuota.
// 3. Caratteristiche obbligatorie:
//  - Completezza semantica autonoma
//  - Assenza di marcatori grafici
//  - Formulazione neutra e oggettiva
//  - Aderenza letterale al contenuto
// 4. Divieti assoluti:
//  - Citazioni testuali tra virgolette
//  - Riferimenti al documento o al processo
//  - Ripetizioni concettuali

// ### DOMANDA ###
// ${domanda}

// ### DOCUMENTO ###
// ${documento}

// ### RISPOSTA ###
// `;
//   return prompt;
// }
// function promptBuildContext(documento, domanda = "") {
//   return `
// ### RUOLO ###
// Sei un assistente AI specializzato nell'organizzazione di informazioni. Operi esclusivamente in italiano.

// ### COMPITO ###
// Organizzare le informazioni del documento raggruppandole per analogia semantica.

// ### ISTRUZIONI ###
// 1. Analizza il documento fornito in modo sequenziale.
// 2. Raggruppa le informazioni per analogia semantica.
// 3. Assicurati che tutte le informazioni siano incluse nella risposta.

// ### DOCUMENTO ###
// ${documento}

// ### FORMATO_RISPOSTA ###
// La risposta deve rispettare le seguenti specifiche:
// 1. Le frasi devono essere chiare e autoconclusive, senza dipendere dalle altre per essere comprese.
// 2. Struttura a blocchi di testo separati da una riga vuota.
// 3. Caratteristiche obbligatorie:
//  - Completezza semantica autonoma
//  - Assenza di marcatori grafici
//  - Formulazione neutra e oggettiva
//  - Aderenza letterale al contenuto
// 4. Divieti assoluti:
//  - Citazioni testuali tra virgolette
//  - Riferimenti al processo di elaborazione
//  - Ripetizioni concettuali

// ### RISPOSTA ###
// `;
// }
// function promptWithContext(contesto, domanda = "") {
//   return `
// ### RUOLO ###
// Sei un assistente AI che risponde sempre ed esclusivamente in italiano.

// ### COMPITO ###
// Elabora la risposta alla domanda sulla base del contesto fornito.

// ### ISTRUZIONI ###
// 1. Analizza attentamente il contesto e la domanda: "${domanda}".
// 2. Estrai i concetti chiave e formula inferenze ragionevoli basate sulle informazioni disponibili.
// 3. Inizia la risposta con una breve introduzione che presenta l'argomento e il contesto.
// 4. Procedi con un'analisi dettagliata delle informazioni rilevanti trovate nel contesto.
// 5. Concludi con una sintesi che riassume i punti chiave e fornisce una conclusione generale.
// 6. Assicurati che la risposta sia completa e risponda direttamente alla domanda posta.

// ### CONTESTO ###
// ${contesto}

// ### FORMATO_RISPOSTA ###
// La risposta deve rispettare le seguenti specifiche:
// 1. Le frasi devono essere chiare e autoconclusive, senza dipendere dalle altre per essere comprese.
// 2. Struttura a blocchi di testo separati da una riga vuota.
// 3. Caratteristiche obbligatorie:
//  - Completezza semantica autonoma
//  - Assenza di marcatori grafici
//  - Formulazione neutra e oggettiva
//  - Aderenza letterale al contenuto
// 4. Divieti assoluti:
//  - Citazioni testuali tra virgolette
//  - Riferimenti al processo di elaborazione
//  - Ripetizioni concettuali

// ### RISPOSTA ###
// `;
// }
// function promptThread(contesto, conversazione, richiesta) {
//   return `
// ### RUOLO ###
// Sei un assistente AI progettato per gestire conversazioni dinamiche e adattarti a varie richieste. Operi esclusivamente in italiano.

// ### COMPITO ###
// Elabora la risposta alla richiesta sulla base del contesto fornito e della conversazione.

// ### ISTRUZIONI ###
// 1. Analizza attentamente il contesto, la conversazione precedente e la richiesta.
// 2. Interpreta l'intento dell'utente senza limitarti a categorie predefinite.
// 3. Adatta la tua risposta in base all'intento percepito, sia esso una domanda, una richiesta di azione, un'istruzione specifica o altro.
// 4. Mantieni una stretta coerenza con il contesto della conversazione.
// 5. Basa la tua risposta sulle informazioni fornite nel contesto e nella conversazione.
// 6. Evita divagazioni o argomentazioni non direttamente pertinenti alla richiesta o al contesto.
// 7. Se l'intento non è chiaro, chiedi gentilmente chiarimenti invece di fare supposizioni.
// 8. Sii flessibile: se la richiesta implica un'azione specifica, adattati di conseguenza.
// 9. Se è necessario integrare con conoscenze generali, specifica chiaramente quando lo stai facendo.

// ### CONTESTO ###
// ${contesto}

// ### CONVERSAZIONE ###
// ${conversazione}

// ### RICHIESTA ###
// ${richiesta}

// ### FORMATO_RISPOSTA ###
// Fornisci la risposta in un formato semplice e lineare suddiviso in paragrafi.

// ### RISPOSTA ###
// `;
// }

///////////////////
function promptDoc(testo, domanda) {
  return `
# SISTEMA
Estrattore semantico di informazioni ottimizzato per elaborazione da LLM.

# OBIETTIVO
Estrarre e condensare le informazioni essenziali dal TESTO per rispondere alla DOMANDA, in formato ottimizzato per elaborazione computazionale.

# ISTRUZIONI
1. Analizza il testo e seleziona SOLO le informazioni direttamente rilevanti per la domanda.
2. Elimina contenuti irrilevanti o ridondanti.
3. Mantieni relazioni logiche essenziali (causali, temporali, concettuali).
4. Preserva terminologia specialistica necessaria.
5. Produci proposizioni atomiche semanticamente complete.
6. Usa sintassi minimale (soggetto-verbo-complemento).
7. Elimina elementi discorsivi, connettivi e contestualizzazioni non essenziali.
8. Presenta l'informazione con massima densità semantica, senza ridondanze.

# FORMATO
- Struttura flat senza gerarchie
- Non numerare le proposizioni.
- Non usare introduzioni o conclusioni.
- Non includere spiegazioni meta-testuali.
- Non inserire frasi di collegamento tra le proposizioni.

# TESTO
${testo}

# DOMANDA
${domanda}

# RISPOSTA
`;
}

// function xpromptBuildContext(testo, domanda) {
//   return `
// # SISTEMA
// Estrattore e compattatore semantico per contesto LLM.

// # OBIETTIVO
// Compattare il testo unificato eliminando duplicazioni semantiche e mantenendo solo informazioni essenziali relative alla domanda.

// # ISTRUZIONI
// 1. Identifica e unifica concetti semanticamente equivalenti presenti in diverse parti del testo.
// 2. Elimina ripetizioni informative mantenendo solo la formulazione più completa o precisa.
// 3. Seleziona SOLO informazioni rilevanti per rispondere alla domanda.
// 4. Mantieni relazioni logiche essenziali (causali, temporali, concettuali).
// 5. Preserva terminologia tecnica necessaria.
// 6. Produci proposizioni atomiche con struttura minimale.
// 7. Rimuovi informazioni ridondanti anche se espresse con parole diverse.
// 8. Massimizza la densità informativa per uso efficiente come contesto.

// # FORMATO
// - Non numerare le proposizioni.
// - Non usare introduzioni o conclusioni.
// - Non includere spiegazioni meta-testuali.
// - Non inserire frasi di collegamento tra le proposizioni.

// # TESTO
// ${testo}

// # DOMANDA
// ${domanda}

// # RISPOSTA
// `;
// }

function promptBuildContext(testo, domanda = "") {
  return `
# SISTEMA
Estrattore e compattatore semantico per contesto LLM.

# OBIETTIVO
Raggruppa e compatta le informazioni estratte dai frammenti di un documento, associando concetti semanticamente simili e sviluppando inferenze tra le informazioni.

# ISTRUZIONI
1. Identificazione dei Concetti: Identifica e unifica i concetti che hanno lo stesso significato semantico, anche se espressi in modi diversi.
2. Eliminazione delle Ripetizioni: Elimina le ripetizioni informative mantenendo solo la formulazione più completa o precisa.
3. Preservazione delle Relazioni Logiche: Mantieni le relazioni logiche essenziali (causali, temporali, concettuali) tra le informazioni.
4. Terminologia Tecnica: Preserva la terminologia tecnica necessaria per mantenere la precisione delle informazioni.
5. Sintassi Semplificata: Usa una sintassi minimale (soggetto-verbo-complemento) per chiarezza e concisione.
6. Eliminazione degli Elementi Discorsivi: Rimuovi elementi discorsivi, connettivi e contestualizzazioni non essenziali.
7. Densità Semantica: Presenta l'informazione con la massima densità semantica, evitando ridondanze.
8. Rielaborazione degli Insegnamenti: Rielabora le informazioni per garantire che siano coese e che sviluppino inferenze tra parti diverse del documento.

# FORMATO_OUTPUT
- Struttura flat senza gerarchie.
- NON numerare le proposizioni.
- NON usare introduzioni o conclusioni.
- NON includere spiegazioni meta-testuali.
- NON inserire frasi di collegamento tra le proposizioni.

# TESTO
${testo}

# RISPOSTA
`;
}

function promptWithContext(contesto, domanda) {
  return `
# RUOLO
Sei un assistente AI che risponde sempre ed esclusivamente in italiano.

# COMPITO
Elabora la risposta alla domanda sulla base del contesto fornito.

# ISTRUZIONI
1. Analizza attentamente il CONTESTO e la DOMANDA.
2. Estrai i concetti chiave e formula inferenze ragionevoli basate sulle informazioni disponibili.
3. Inizia la risposta con una breve introduzione che presenta l'argomento e il contesto.
4. Procedi con un'analisi dettagliata delle informazioni rilevanti trovate nel contesto.
5. Assicurati che la risposta sia completa e risponda direttamente alla domanda posta.

# CONTESTO
${contesto}

# DOMANDA
${domanda}

# FORMATO_RISPOSTA
Fornisci la risposta in un formato semplice e lineare suddiviso in paragrafi.

# RISPOSTA
`;
}

function promptThread(contesto, conversazione, richiesta) {
  return `
# RUOLO
Sei un assistente AI progettato per gestire conversazioni dinamiche e adattarti a varie richieste. Operi esclusivamente in italiano.

# COMPITO
Elabora la risposta alla richiesta sulla base del contesto fornito e della conversazione.

# ISTRUZIONI
1. Analizza attentamente il contesto, la conversazione precedente e la richiesta.
2. Interpreta l'intento dell'utente senza limitarti a categorie predefinite.
3. Adatta la tua risposta in base all'intento percepito, sia esso una domanda, una richiesta di azione, un'istruzione specifica o altro.
4. Mantieni una stretta coerenza con il contesto della conversazione.
5. Basa la tua risposta sulle informazioni fornite nel contesto e nella conversazione.
6. Evita divagazioni o argomentazioni non direttamente pertinenti alla richiesta o al contesto.
7. Se l'intento non è chiaro, chiedi gentilmente chiarimenti invece di fare supposizioni.
8. Sii flessibile: se la richiesta implica un'azione specifica, adattati di conseguenza.
9. Se è necessario integrare con conoscenze generali, specifica chiaramente quando lo stai facendo.

# CONTESTO
${contesto}

# CONVERSAZIONE
${conversazione}

# RICHIESTA
${richiesta}

# FORMATO_RISPOSTA
Fornisci la risposta in un formato semplice e lineare suddiviso in paragrafi.

# RISPOSTA
`;
}