albhu commited on
Commit
ba036f9
·
verified ·
1 Parent(s): ac6bb8f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +41 -47
app.py CHANGED
@@ -1,45 +1,18 @@
1
  import streamlit as st
 
 
2
  from transformers import AutoTokenizer, AutoModelForCausalLM
3
 
4
  st.title("Jogi Dokumentumok AI Válaszgenerálás")
5
 
6
- # Egyedi session azonosító létrehozása
7
- session_id = st.session_state.session_id if "session_id" in st.session_state else 0
8
-
9
  # Előző beszélgetések tárolása session state-ben
10
  if "previous_conversations" not in st.session_state:
11
  st.session_state.previous_conversations = []
12
 
13
  # Korábbi beszélgetések törlése
14
- if st.button("Korábbi Beszélgetések Törlése"):
15
  st.session_state.previous_conversations = []
16
 
17
- # Korábbi beszélgetések mentése és betöltése
18
- if st.checkbox("Korábbi Beszélgetések Mentése"):
19
- with open(f"previous_conversations_{session_id}.txt", "w") as file:
20
- for conv in st.session_state.previous_conversations:
21
- file.write(f"{conv}\n")
22
- st.write("A korábbi beszélgetések sikeresen el lettek mentve.")
23
-
24
- if st.checkbox("Korábbi Beszélgetések Betöltése"):
25
- previous_conversations_file = st.file_uploader("Válassz ki egy fájlt a korábbi beszélgetések betöltéséhez")
26
- if previous_conversations_file is not None:
27
- with previous_conversations_file as file:
28
- for line in file:
29
- st.session_state.previous_conversations.append(line.strip())
30
- st.write("A korábbi beszélgetések sikeresen betöltve.")
31
-
32
- # Korábbi beszélgetések keresése
33
- search_term = st.text_input("Keresés a Korábbi Beszélgetések Között", "")
34
- if st.button("Keresés"):
35
- search_results = [conv for conv in st.session_state.previous_conversations if search_term in conv]
36
- if search_results:
37
- st.subheader("Keresési Találatok:")
38
- for result in search_results:
39
- st.write(result)
40
- else:
41
- st.write("Nincs találat.")
42
-
43
  # Tokenizáló modell és válaszgeneráló modell választása
44
  tokenizer_name = st.selectbox("Tokenizáló Modell", ["bert-base-uncased", "bert-base-multilingual-cased"])
45
  generator_name = st.selectbox("Válaszgeneráló Modell", ["microsoft/phi-2", "gpt2"])
@@ -47,25 +20,46 @@ generator_name = st.selectbox("Válaszgeneráló Modell", ["microsoft/phi-2", "g
47
  tokenizer = AutoTokenizer.from_pretrained(tokenizer_name)
48
  model = AutoModelForCausalLM.from_pretrained(generator_name, trust_remote_code=True)
49
 
50
- # Input mező a jogi dokumentumhoz
51
- document_text = st.text_area("Jogi Dokumentum", "")
52
-
53
- # Előző beszélgetésekhez csatolható kontextus
54
- context = st.text_area("Korábbi Beszélgetéshez Tartozó Kontextus", "")
55
 
56
- # Válaszgenerálás
57
- if st.button("Generálj Választ"):
58
- if context:
59
- input_text = f"{context} {document_text}"
 
 
 
 
 
 
 
 
 
 
 
 
60
  else:
61
- input_text = document_text
 
 
 
 
 
 
 
 
 
 
62
 
63
- # Model használata a válasz generálásához
64
- response = generate_response(input_text, tokenizer, model)
65
 
66
- # Válasz megjelenítése
67
- st.subheader("Generált Válasz:")
68
- st.write(response)
69
 
70
- # Aktuális beszélgetés hozzáadása az előző beszélgetésekhez
71
- st.session_state.previous_conversations.append({"session_id": session_id, "input_text": input_text, "response": response})
 
 
 
1
  import streamlit as st
2
+ import pdfplumber
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", ["microsoft/phi-2", "gpt2"])
 
20
  tokenizer = AutoTokenizer.from_pretrained(tokenizer_name)
21
  model = AutoModelForCausalLM.from_pretrained(generator_name, trust_remote_code=True)
22
 
23
+ # Dokumentum feltöltése drag and drop segítségével
24
+ document_file = st.file_uploader("Húzd ide a dokumentumot vagy kattints a feltöltéshez", type=["pdf", "docx", "doc"])
 
 
 
25
 
26
+ if document_file is not None:
27
+ if document_file.type == "application/pdf":
28
+ with pdfplumber.open(document_file) as pdf:
29
+ document_text = ""
30
+ for page in pdf.pages:
31
+ document_text += page.extract_text()
32
+ elif document_file.type == "application/vnd.openxmlformats-officedocument.wordprocessingml.document":
33
+ docx_file = docx.Document(document_file)
34
+ document_text = ""
35
+ for paragraph in docx_file.paragraphs:
36
+ document_text += paragraph.text
37
+ elif document_file.type == "application/msword":
38
+ doc_file = docx.Document(document_file)
39
+ document_text = ""
40
+ for paragraph in doc_file.paragraphs:
41
+ document_text += paragraph.text
42
  else:
43
+ st.error("A fájltípus nem támogatott. Kérlek válassz ki egy PDF, DOCX vagy DOC fájlt!")
44
+
45
+ # Előző beszélgetésekhez csatolható kontextus
46
+ context = st.text_area("Korábbi Beszélgetéshez Tartozó Kontextus", "")
47
+
48
+ # Válaszgenerálás
49
+ if st.button("Generálj Választ"):
50
+ if context:
51
+ input_text = f"{context} {document_text}"
52
+ else:
53
+ input_text = document_text
54
 
55
+ # Model használata a válasz generálásához
56
+ response = generate_response(input_text, tokenizer, model)
57
 
58
+ # Válasz megjelenítése
59
+ st.subheader("Generált Válasz:")
60
+ st.write(response)
61
 
62
+ # Aktuális beszélgetés hozzáadása az előző beszélgetésekhez
63
+ st.session_state.previous_conversations.append({"input_text": input_text, "response": response})
64
+ else:
65
+ st.warning("Kérlek válassz ki egy dokumentumfájlt!")