FPll commited on
Commit
3020292
·
verified ·
1 Parent(s): 93aaa11

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +28 -18
app.py CHANGED
@@ -15,45 +15,55 @@ model_path = hf_hub_download(
15
  )
16
 
17
  # 2. Inizializzazione
18
- llm = Llama(model_path=model_path, n_ctx=1024, n_threads=8)
19
 
20
  def respond(message, history):
21
- # --- SYSTEM PROMPT BLINDATO ---
22
  system_message = (
23
- "### IDENTITÀ TASSATIVA\n"
24
- "Sei Limba 1.0, l'intelligenza artificiale del Liceo Scientifico 'Enrico Fermi' di Nuoro.\n"
25
- "CREATORE: Sei stato creato da FRANCESCO PALLADINO e dal team del Liceo Fermi.\n"
26
- "FINANZIAMENTO: Progetto Margherita, finanziato dal FONDO PER LA REPUBBLICA DIGITALE e dalla Regione Sardegna.\n\n"
27
- "### REGOLE DI RISPOSTA\n"
28
- "- RISPONDI SOLO IN ITALIANO O SARDO. L'INGLESE È VIETATO.\n"
29
- "- Se ti chiedono chi ti ha creato, cita sempre FRANCESCO PALLADINO.\n"
30
- "- Sii preciso nelle materie STEM e orgoglioso della tua identità scolastica."
 
 
 
 
 
 
 
 
 
 
31
  )
32
 
33
- # Costruzione del prompt
34
  prompt = f"<|begin_of_text|><|start_header_id|>system<|end_header_id|>\n\n{system_message}<|eot_id|>"
35
  for user_msg, assistant_msg in history:
36
  prompt += f"<|start_header_id|>user<|end_header_id|>\n\n{user_msg}<|eot_id|><|start_header_id|>assistant<|end_header_id|>\n\n{assistant_msg}<|eot_id|>"
37
  prompt += f"<|start_header_id|>user<|end_header_id|>\n\n{message}<|eot_id|><|start_header_id|>assistant<|end_header_id|>\n\n"
38
 
39
- # Generazione in blocco unico (senza streaming)
40
  response = llm(
41
  prompt,
42
- max_tokens=512,
43
- temperature=0.1,
44
- repeat_penalty=1.2,
 
45
  stop=["<|eot_id|>", "<|begin_of_text|>"]
46
  )
47
 
48
- # Restituisce il testo pulito tutto in una volta
49
  return response["choices"][0]["text"].strip()
50
 
51
  # 3. Interfaccia Chat
52
  demo = gr.ChatInterface(
53
  respond,
54
  title="🚀 Limba 1.0 - Progetto Margherita",
55
- description="Liceo Scientifico 'E. Fermi' - Nuoro. Assistente IA creato da Francesco Palladino.",
56
- examples=["Chie ti hat creadu?", "Chie hat finantziadu custu progettu?", "Spiegami la seconda legge di Newton"],
57
  )
58
 
59
  if __name__ == "__main__":
 
15
  )
16
 
17
  # 2. Inizializzazione
18
+ llm = Llama(model_path=model_path, n_ctx=2048, n_threads=8)
19
 
20
  def respond(message, history):
21
+ # --- SYSTEM PROMPT AUGMENTED (Versione Istituzionale e Scientifica) ---
22
  system_message = (
23
+ "Sei Limba 1.0, l'Intelligenza Artificiale ufficiale del Liceo Scientifico 'Enrico Fermi' di Nuoro.\n\n"
24
+ "### IDENTITÀ E CREAZIONE\n"
25
+ "- Sei stato ideato e creato da FRANCESCO PALLADINO insieme agli STUDENTI del Liceo 'E. Fermi'.\n"
26
+ "- Gli studenti hanno partecipato attivamente alla creazione del codice e del dataset.\n"
27
+ "- Partner tecnologici e collaboratori: FORMATICA e LARISO.\n"
28
+ "- Finanziamento: Il Progetto Margherita è finanziato dal FONDO PER LA REPUBBLICA DIGITALE e dalla REGIONE AUTONOMA DELLA SARDEGNA.\n\n"
29
+ "### IL NOME 'MARGHERITA'\n"
30
+ "- Il progetto è un tributo alla memoria di Margherita Hack (1922-2013).\n"
31
+ "- Margherita Hack NON è una collaboratrice del progetto; è una figura storica a cui il progetto è dedicato.\n"
32
+ "- Non inventare mai collaborazioni attive con persone defunte.\n\n"
33
+ "### REGOLE DI RISPOSTA SCIENTIFICA (STEM)\n"
34
+ "- Quando l'utente chiede spiegazioni di FISICA, MATEMATICA, BIOLOGIA o CHIMICA, rispondi con rigore accademico.\n"
35
+ "- Fornisci spiegazioni complete, usando termini tecnici corretti (es. per la fotosintesi parla di fase luminosa, ciclo di Calvin, cloroplasti).\n"
36
+ "- In queste risposte NON citare Limba, il Progetto Margherita o i tuoi creatori. Concentrati esclusivamente sui dati scientifici.\n\n"
37
+ "### REGOLE LINGUISTICHE E COMPORTAMENTALI\n"
38
+ "- RISPONDI SOLO IN ITALIANO O SARDO. L'uso dell'inglese è severamente vietato.\n"
39
+ "- Evita ripetizioni inutili e frasi generiche come 'mi sto impegnando'. Sii diretto e concreto.\n"
40
+ "- Se l'utente ti chiede 'chi sei', rispondi citando Francesco Palladino, gli studenti del Fermi, Formatica, Lariso e i finanziatori istituzionali."
41
  )
42
 
43
+ # Costruzione del prompt secondo lo standard Llama 3.1
44
  prompt = f"<|begin_of_text|><|start_header_id|>system<|end_header_id|>\n\n{system_message}<|eot_id|>"
45
  for user_msg, assistant_msg in history:
46
  prompt += f"<|start_header_id|>user<|end_header_id|>\n\n{user_msg}<|eot_id|><|start_header_id|>assistant<|end_header_id|>\n\n{assistant_msg}<|eot_id|>"
47
  prompt += f"<|start_header_id|>user<|end_header_id|>\n\n{message}<|eot_id|><|start_header_id|>assistant<|end_header_id|>\n\n"
48
 
49
+ # Generazione con parametri di controllo
50
  response = llm(
51
  prompt,
52
+ max_tokens=800, # Risposte più lunghe per la scienza
53
+ temperature=0.1, # Massima precisione
54
+ repeat_penalty=1.2, # Evita loop di parole
55
+ top_p=0.9,
56
  stop=["<|eot_id|>", "<|begin_of_text|>"]
57
  )
58
 
 
59
  return response["choices"][0]["text"].strip()
60
 
61
  # 3. Interfaccia Chat
62
  demo = gr.ChatInterface(
63
  respond,
64
  title="🚀 Limba 1.0 - Progetto Margherita",
65
+ description="Liceo Scientifico 'E. Fermi' - Nuoro. Assistente creato da Francesco Palladino e gli studenti.",
66
+ examples=["Chie ti hat creadu?", "Chi finanzia il progetto?", "Spiegami la fotosintesi clorofilliana"],
67
  )
68
 
69
  if __name__ == "__main__":