albhu commited on
Commit
b568946
·
verified ·
1 Parent(s): d60519f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +42 -47
app.py CHANGED
@@ -3,15 +3,19 @@ import pdfplumber
3
  import docx
4
  from transformers import AutoTokenizer, AutoModelForCausalLM
5
 
6
- st.title("Jai")
7
 
8
  # Előző beszélgetések tárolása session state-ben
9
  if "previous_conversations" not in st.session_state:
10
  st.session_state.previous_conversations = []
11
 
 
 
 
 
12
  # Tokenizáló modell és válaszgeneráló modell választása
13
- tokenizer_name = st.sidebar.selectbox("Tokenizáló Modell", ["bert-base-uncased", "bert-base-multilingual-cased"])
14
- generator_name = st.sidebar.selectbox("Válaszgeneráló Modell", ["bert-base-uncased", "bert-base-multilingual-cased"])
15
 
16
  tokenizer = AutoTokenizer.from_pretrained(tokenizer_name)
17
  model = AutoModelForCausalLM.from_pretrained(generator_name, trust_remote_code=True)
@@ -32,54 +36,45 @@ def generate_response(input_text, tokenizer, model):
32
  document_file = st.file_uploader("Húzd ide a dokumentumot vagy kattints a feltöltéshez", type=["pdf", "docx", "doc"])
33
 
34
  if document_file is not None:
35
- # Válaszgenerálás
36
- if st.button("Generálj Választ"):
37
- document_text = ""
38
-
39
- if document_file.type == "application/pdf":
40
- with pdfplumber.open(document_file) as pdf:
41
- for page in pdf.pages:
42
- document_text += page.extract_text()
43
- # Ha bekezdésekre bontjuk, hozzáadhatunk például egy sortörést a bekezdések közé:
44
- document_text += "\n\n"
45
- elif document_file.type == "application/vnd.openxmlformats-officedocument.wordprocessingml.document":
46
- docx_file = docx.Document(document_file)
47
- for paragraph in docx_file.paragraphs:
48
- document_text += paragraph.text
49
- # Hasonlóan, itt is adhatunk hozzá sortörést a bekezdések közé:
50
- document_text += "\n\n"
51
- elif document_file.type == "application/msword":
52
- doc_file = docx.Document(document_file)
53
- for paragraph in doc_file.paragraphs:
54
- document_text += paragraph.text
55
- document_text += "\n\n"
56
- else:
57
- st.error("A fájltípus nem támogatott. Kérlek válassz ki egy PDF, DOCX vagy DOC fájlt!")
58
-
59
- # Előző beszélgetésekhez csatolható kontextus
60
- context = st.text_area("Korábbi Beszélgetéshez Tartozó Kontextus", "")
61
 
62
- # Kérdés mező hozzáadása
63
- question = st.text_input("Kérdés a Dokumentumból", "")
64
-
65
- # Ha van kérdés, azt is hozzáadjuk a bemenethez
66
- if question:
67
- input_text = f"{context} {document_text} {question}" if context else f"{document_text} {question}"
68
- else:
69
- input_text = f"{context} {document_text}" if context else document_text
70
-
71
- # Model használata a válasz generálásához
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
72
  response = generate_response(input_text, tokenizer, model)
73
-
74
- # Válasz megjelenítése
75
  st.subheader("Generált Válasz:")
76
  st.write(response)
77
 
78
  # Aktuális beszélgetés hozzáadása az előző beszélgetésekhez
79
  st.session_state.previous_conversations.append({"input_text": input_text, "response": response})
80
-
81
- # Előző beszélgetések megjelenítése
82
- st.sidebar.subheader("Előző Beszélgetések")
83
- for conv in st.session_state.previous_conversations:
84
- st.sidebar.write(conv["input_text"])
85
- st.sidebar.write(conv["response"])
 
3
  import docx
4
  from transformers import AutoTokenizer, AutoModelForCausalLM
5
 
6
+ st.title("Jogi Dokumentumok AI Válaszgenerálás")
7
 
8
  # Előző beszélgetések tárolása session state-ben
9
  if "previous_conversations" not in st.session_state:
10
  st.session_state.previous_conversations = []
11
 
12
+ # Korábbi beszélgetések törlése
13
+ if st.checkbox("Korábbi Beszélgetések Törlése"):
14
+ st.session_state.previous_conversations = []
15
+
16
  # Tokenizáló modell és válaszgeneráló modell választása
17
+ tokenizer_name = st.selectbox("Tokenizáló Modell", ["bert-base-uncased", "bert-base-multilingual-cased"])
18
+ generator_name = st.selectbox("Válaszgeneráló Modell", ["bert-base-uncased", "bert-base-multilingual-cased"])
19
 
20
  tokenizer = AutoTokenizer.from_pretrained(tokenizer_name)
21
  model = AutoModelForCausalLM.from_pretrained(generator_name, trust_remote_code=True)
 
36
  document_file = st.file_uploader("Húzd ide a dokumentumot vagy kattints a feltöltéshez", type=["pdf", "docx", "doc"])
37
 
38
  if document_file is not None:
39
+ document_text = ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
 
41
+ if document_file.type == "application/pdf":
42
+ with pdfplumber.open(document_file) as pdf:
43
+ for page in pdf.pages:
44
+ document_text += page.extract_text()
45
+ # Ha bekezdésekre bontjuk, hozzáadhatunk például egy sortörést a bekezdések közé:
46
+ document_text += "\n\n"
47
+ elif document_file.type == "application/vnd.openxmlformats-officedocument.wordprocessingml.document":
48
+ docx_file = docx.Document(document_file)
49
+ for paragraph in docx_file.paragraphs:
50
+ document_text += paragraph.text
51
+ # Hasonlóan, itt is adhatunk hozzá sortörést a bekezdések közé:
52
+ document_text += "\n\n"
53
+ elif document_file.type == "application/msword":
54
+ doc_file = docx.Document(document_file)
55
+ for paragraph in doc_file.paragraphs:
56
+ document_text += paragraph.text
57
+ document_text += "\n\n"
58
+ else:
59
+ st.error("A fájltípus nem támogatott. Kérlek válassz ki egy PDF, DOCX vagy DOC fájlt!")
60
+
61
+ # Előző beszélgetésekhez csatolható kontextus
62
+ context = st.text_area("Korábbi Beszélgetéshez Tartozó Kontextus", "")
63
+
64
+ # Kérdés mező hozzáadása
65
+ question = st.text_input("Kérdés a Dokumentumból", "")
66
+
67
+ # Ha van kérdés, azt is hozzáadjuk a bemenethez
68
+ if question:
69
+ input_text = f"{context} {document_text} {question}" if context else f"{document_text} {question}"
70
+ else:
71
+ input_text = f"{context} {document_text}" if context else document_text
72
+
73
+ # Válasz generálása csak akkor, ha a felhasználó elküldi a promptot
74
+ if input_text.strip() != "":
75
  response = generate_response(input_text, tokenizer, model)
 
 
76
  st.subheader("Generált Válasz:")
77
  st.write(response)
78
 
79
  # Aktuális beszélgetés hozzáadása az előző beszélgetésekhez
80
  st.session_state.previous_conversations.append({"input_text": input_text, "response": response})