AshenClock commited on
Commit
c191446
·
verified ·
1 Parent(s): 70bec3c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -24
app.py CHANGED
@@ -28,36 +28,37 @@ def validate_sparql_query(query: str, rdf_file_path: str) -> bool:
28
 
29
  # Prompt di sistema "stringente"
30
  def create_system_message(rdf_context: str) -> str:
 
 
 
 
31
  return f"""
32
  Sei un assistente esperto nella generazione di query SPARQL basate su un'ontologia RDF.
33
  Ecco un riassunto dell'ontologia su cui devi lavorare:
34
  {rdf_context}
35
 
36
- Regole tassative:
37
- 1. La query DEV'ESSERE in una sola riga.
38
- 2. Usa SEMPRE il prefisso base: se l'ontologia è <http://example.org/onto#>, dovrai scrivere:
39
- PREFIX base: <http://example.org/onto#> SELECT ...
40
- TUTTO su un'unica riga, senza andare a capo.
41
- 3. Se vuoi filtrare per classe, usa: ?entity a base:NomeClasse .
42
- 4. Se vuoi usare una proprietà, usa: ?entity base:NomeProprieta ?altra .
43
- 5. NON usare URI lunghe senza parentesi angolate e non inventare prefissi.
44
- 6. Se la query non rispetta la sintassi SPARQL, verrà rifiutata.
45
-
46
- OBIETTIVO:
47
- - Genera una query SPARQL sintatticamente e semanticamente valida rispetto alle classi e proprietà riportate.
48
- - Se non puoi rispondere, dì: "Non posso generare una query SPARQL per questa richiesta."
 
 
 
 
 
 
 
49
  """
50
-
51
- # Prompt di sistema "correttivo" per la seconda iterazione
52
- def create_correction_message(rdf_context: str, errore: str) -> str:
53
- return f"""
54
- La query che hai fornito è risultata NON valida:
55
- {errore}
56
-
57
- Ricorda le regole tassative e ritenta la generazione di UNA SOLA query SPARQL valida in una riga.
58
- Riproponila corretta, sempre rispettando il prefisso base: e la sintassi di SELECT/ASK.
59
- """
60
-
61
  # Funzione per chiamare il modello su Hugging Face
62
  async def call_model(messages, temperature=0.7, max_tokens=2048):
63
  try:
 
28
 
29
  # Prompt di sistema "stringente"
30
  def create_system_message(rdf_context: str) -> str:
31
+ """
32
+ Prompt di sistema estremamente rigido, che forza il modello
33
+ a usare solo il prefisso definito e a generare la query in un'unica riga.
34
+ """
35
  return f"""
36
  Sei un assistente esperto nella generazione di query SPARQL basate su un'ontologia RDF.
37
  Ecco un riassunto dell'ontologia su cui devi lavorare:
38
  {rdf_context}
39
 
40
+ DI SEGUITO LE REGOLE TASSATIVE:
41
+ 1. DEVI usare ESCLUSIVAMENTE questo prefisso di base (e NON modificarlo in nessun modo):
42
+ PREFIX base: <http://www.semanticweb.org/lucreziamosca/ontologies/2024/11/untitled-ontology-39/>
43
+ 2. La query deve stare in UNA SOLA RIGA, senza andare a capo.
44
+ 3. La query deve INIZIARE con:
45
+ PREFIX base: <http://www.semanticweb.org/lucreziamosca/ontologies/2024/11/untitled-ontology-39/> SELECT
46
+ oppure
47
+ PREFIX base: <http://www.semanticweb.org/lucreziamosca/ontologies/2024/11/untitled-ontology-39/> ASK
48
+ 4. Se devi indicare una classe, usa: ?qualcosa a base:NomeClasse .
49
+ 5. Se devi indicare una proprietà, usa: ?s base:NomeProprieta ?o .
50
+ 6. NON generare alcun altro prefisso.
51
+ 7. NON utilizzare URI lunghe senza < > e NON inventare prefissi o risorse inesistenti.
52
+ 8. Se non puoi rispondere con una query SPARQL valida secondo questi criteri, scrivi:
53
+ "Non posso generare una query SPARQL per questa richiesta."
54
+
55
+ Esempio di query corretta (fittizia) in una sola riga:
56
+ PREFIX base: <http://www.semanticweb.org/lucreziamosca/ontologies/2024/11/untitled-ontology-39/> SELECT ?stanza WHERE { ?stanza a base:Stanza . } LIMIT 10
57
+
58
+ RISPONDI ESCLUSIVAMENTE CON LA QUERY O IL MESSAGGIO DI IMPOSSIBILITA'.
59
+ NON SCRIVERE NESSUN COMMENTO AGGIUNTIVO.
60
  """
61
+
 
 
 
 
 
 
 
 
 
 
62
  # Funzione per chiamare il modello su Hugging Face
63
  async def call_model(messages, temperature=0.7, max_tokens=2048):
64
  try: