Cicciokr commited on
Commit
80129c2
·
verified ·
1 Parent(s): 6390c56

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +70 -0
app.py ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from transformers import pipeline, AutoModelForCausalLM, AutoTokenizer, GPT2Tokenizer, GPT2LMHeadModel, MT5Model, AutoModelForSeq2SeqLM
3
+
4
+
5
+ # Imposta una chiave di sessione per il testo input, così possiamo aggiornarlo
6
+ if "input_text_value" not in st.session_state:
7
+ st.session_state["input_text_value"] = "His nuntiis litterisque commotus Caesar duas legiones in citeriore Gallia novas <extra_id_0> in ulteriorem Galliam qui deduceret Q. Pedium legatum misit."
8
+ if "input_text_value_correct" not in st.session_state:
9
+ st.session_state["input_text_value_correct"] = "conscripsit et inita aestate"
10
+
11
+ # Frasi di esempio
12
+ examples = [
13
+ "Caesar in Gallia bellum gessit. <extra_id_0> instructae erant, sed subito",
14
+ "His nuntiis litterisque commotus Caesar duas legiones in citeriore Gallia novas <extra_id_0> in ulteriorem Galliam qui deduceret Q. Pedium legatum misit.",
15
+ "Illi ante inito, ut intellectum est, consilio, quod deditione facta nostros praesidia deducturos aut denique indiligentius servaturos crediderant, partim cum iis quae retinuerant et celaverant armis, partim scutis ex cortice factis aut viminibus intextis, quae subito, ut temporis exiguitas postulabat, pellibus induxerant, tertia vigilia, [MASK], omnibus copiis repente ex oppido eruptionem fecerunt.",
16
+ "Primum igitur illud est, ex quo intellegi possit debuisse Cluentium magno opere causae confidere, quod certissimis [MASK]. Hoc loco faciendum mihi, iudices, est ut vobis breviter illa quibus Albius est condemnatus crimina exponam."
17
+ ]
18
+ examples_correct = [
19
+ "Omnes legiones",
20
+ "conscripsit et inita aestate",
21
+ "qua minime arduus ad nostras munitiones ascensus videbatur",
22
+ "criminibus et testibus fretus ad accusandum descenderit"
23
+ ]
24
+
25
+ st.title("Completamento di frasi in testi Latino Antico")
26
+
27
+ st.write("Esempi di testo (clicca sul bottone per copiare la frase nel campo di input):")
28
+
29
+ # Per ogni frase, creiamo una riga con la frase + bottone "Usa questa frase"
30
+ for i, example in enumerate(examples, start=1):
31
+ cols = st.columns([4,1]) # la prima colonna più larga per il testo, la seconda più stretta per il bottone
32
+ with cols[0]:
33
+ st.write(f"Esempio {i}: {example}")
34
+ with cols[1]:
35
+ # Se il bottone viene premuto, aggiorna la session state
36
+ if st.button(f"Usa {i}"):
37
+ st.session_state["input_text_value"] = example
38
+ st.session_state["input_text_value_correct"] = examples_correct[i]
39
+
40
+ # Qui la text_input è associata alla chiave "input_text_value"
41
+ input_text = st.text_area(
42
+ label="Testo:",
43
+ height=150, # Altezza in pixel
44
+ key="input_text_value"
45
+ )
46
+
47
+ # Esempio: carichiamo un modello di linguaggio
48
+ # (sostituisci con i tuoi modelli)
49
+ #model = GPT2LMHeadModel.from_pretrained("Cicciokr/GPT2-Latin-GenText")
50
+ #tokenizer = GPT2Tokenizer.from_pretrained("Cicciokr/GPT2-Latin-GenText")
51
+ tokenizer = AutoTokenizer.from_pretrained("google/mt5-small", use_fast=False)
52
+ model = AutoModelForSeq2SeqLM.from_pretrained("google/mt5-small")
53
+ #tokenizer.pad_token_id = tokenizer.eos_token_id
54
+ generator = pipeline("text2text-generation", model=model, tokenizer=tokenizer)
55
+
56
+
57
+ # Se l'utente ha inserito (o selezionato) un testo
58
+ if input_text:
59
+ # Sostituiamo [MASK] con <mask> (lo tokenizer Roberta se lo aspetta così)
60
+ prompt = "Completa il seguente testo in latino: "+input_text
61
+ inputs = tokenizer(prompt, return_tensors="pt")
62
+ #output = model.generate(**inputs, max_length=512, num_return_sequences=1)
63
+ output = model.generate(**inputs, max_length=256, num_return_sequences=1, temperature=0.9, top_k=50, top_p=0.95)
64
+ generated_text = tokenizer.decode(output[0], skip_special_tokens=True)
65
+ st.subheader("Risultato:")
66
+ if 'input_text_value_correct' in st.session_state:
67
+ st.write(f" Parola corretta: {st.session_state['input_text_value_correct']}\n")
68
+ st.write(f" Frase predetta: {generated_text}\n")
69
+ #st.write(f" Frase predetta: {tokenizer.decode(output[0], skip_special_tokens=True)}\n")
70
+ print(output)