albhu commited on
Commit
b75809a
·
verified ·
1 Parent(s): 7283693

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +76 -0
app.py ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from transformers import AutoTokenizer, AutoModel, AutoModelForCausalLM
3
+
4
+ st.title("Jogi Dokumentumok AI Tokenizálása és Válaszgenerálás")
5
+
6
+ # Információs szekció
7
+ st.write(
8
+ """
9
+ Ez az alkalmazás tokenizálja a megadott jogi dokumentumot az általad választott modell segítségével,
10
+ majd generál válaszokat a megadott modell használatával.
11
+ """
12
+ )
13
+
14
+ # Tokenizáló modell választása
15
+ tokenizer_name = st.selectbox("Tokenizáló Modell", ["pile-of-law/legalbert-large-1.7M-2", "bert-base-uncased", "bert-base-multilingual-cased"])
16
+ tokenizer = AutoTokenizer.from_pretrained(tokenizer_name)
17
+
18
+ # Válaszgeneráló modell választása
19
+ generator_name = st.selectbox("Válaszgeneráló Modell", ["microsoft/phi-2", "gpt2", "gpt2-medium"])
20
+ model = AutoModelForCausalLM.from_pretrained(generator_name, trust_remote_code=True)
21
+
22
+ # Input mező a jogi dokumentumhoz
23
+ document_text = st.text_area("Jogi Dokumentum", "")
24
+
25
+ # Generálási paraméterek testreszabása
26
+ max_length = st.slider("Maximális Válasz Hossz", min_value=10, max_value=200, value=50, step=10)
27
+ num_return_sequences = st.slider("Válaszok Száma", min_value=1, max_value=5, value=3, step=1)
28
+ temperature = st.slider("Hőmérséklet", min_value=0.1, max_value=2.0, value=0.7, step=0.1)
29
+
30
+ if st.button("Tokenizálás"):
31
+ # Tokenizálás
32
+ tokenized_document = tokenizer(document_text, return_tensors="pt")
33
+
34
+ # Tokenizált dokumentum mentése
35
+ with open("tokenized_document.txt", "w", encoding="utf-8") as file:
36
+ file.write(str(tokenized_document))
37
+
38
+ if st.button("Válaszgenerálás"):
39
+ # Válasz generálása
40
+ input_ids = tokenized_document["input_ids"]
41
+ output = model.generate(input_ids, max_length=max_length, num_return_sequences=num_return_sequences, temperature=temperature)
42
+
43
+ # Válaszok megjelenítése és mentése fájlba
44
+ st.subheader("Generált Válaszok:")
45
+
46
+ # Válaszok kiválasztása
47
+ selected_responses = st.multiselect("Válaszok Kiválasztása", [f"Válasz {i+1}" for i in range(num_return_sequences)])
48
+
49
+ for i, generated_sequence in enumerate(output):
50
+ response_text = tokenizer.decode(generated_sequence, skip_special_tokens=True)
51
+
52
+ # Válasz megjelenítése csak akkor, ha kiválasztották
53
+ if f"Válasz {i+1}" in selected_responses:
54
+ st.write(f"Válasz {i+1}: {response_text}")
55
+
56
+ # Valószínűségek megjelenítése
57
+ if hasattr(model, "get_output_embeddings"):
58
+ logits = model.get_output_embeddings()(generated_sequence)
59
+ probs = logits.softmax(dim=-1)
60
+ st.write("Valószínűségek:")
61
+ st.table(probs.tolist())
62
+
63
+ # Fájlba mentés opció
64
+ if st.button(f"Mentés Válasz {i+1}"):
65
+ with open(f"generated_response_{i+1}.txt", "w", encoding="utf-8") as file:
66
+ file.write(response_text)
67
+ st.write(f"A válasz {i+1} sikeresen el lett mentve.")
68
+
69
+ # Generált válaszok egyetlen fájlba mentése
70
+ if st.button("Mentés Összes Válasz"):
71
+ with open("all_generated_responses.txt", "w", encoding="utf-8") as file:
72
+ for i, generated_sequence in enumerate(output):
73
+ generated_text = tokenizer.decode(generated_sequence, skip_special_tokens=True)
74
+ file.write(f"Válasz {i+1}:\n")
75
+ file.write(generated_text + "\n\n")
76
+ st.write("Az összes válasz sikeresen el lett mentve egy fájlba.")