Update app.py
Browse files
app.py
CHANGED
@@ -1,7 +1,9 @@
|
|
1 |
import streamlit as st
|
|
|
|
|
2 |
from transformers import AutoTokenizer, AutoModelForCausalLM
|
3 |
|
4 |
-
st.title("
|
5 |
|
6 |
# Előző beszélgetések tárolása session state-ben
|
7 |
if "previous_conversations" not in st.session_state:
|
@@ -12,22 +14,19 @@ if st.checkbox("Korábbi Beszélgetések Törlése"):
|
|
12 |
st.session_state.previous_conversations = []
|
13 |
|
14 |
# Tokenizáló modell és válaszgeneráló modell választása
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
tokenizer = AutoTokenizer.from_pretrained(tokenizer_name)
|
19 |
-
model = AutoModelForCausalLM.from_pretrained(model_name, trust_remote_code=True)
|
20 |
|
21 |
# Definiáljuk a válaszgeneráló függvényt
|
22 |
def generate_response(input_text, tokenizer, model):
|
23 |
# Tokenizálás
|
24 |
-
|
25 |
|
26 |
# Modell használata a válasz generálásához
|
27 |
-
|
28 |
|
29 |
-
#
|
30 |
-
response = tokenizer.decode(
|
31 |
return response
|
32 |
|
33 |
# Dokumentum feltöltése drag and drop segítségével
|
@@ -37,18 +36,21 @@ if document_file is not None:
|
|
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
|
|
|
1 |
import streamlit as st
|
2 |
+
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:
|
|
|
14 |
st.session_state.previous_conversations = []
|
15 |
|
16 |
# Tokenizáló modell és válaszgeneráló modell választása
|
17 |
+
tokenizer = AutoTokenizer.from_pretrained("AdaptLLM/law-chat")
|
18 |
+
model = AutoModelForCausalLM.from_pretrained("AdaptLLM/law-chat", trust_remote_code=True)
|
|
|
|
|
|
|
19 |
|
20 |
# Definiáljuk a válaszgeneráló függvényt
|
21 |
def generate_response(input_text, tokenizer, model):
|
22 |
# Tokenizálás
|
23 |
+
inputs = tokenizer(input_text, return_tensors="pt", max_length=1024)
|
24 |
|
25 |
# Modell használata a válasz generálásához
|
26 |
+
outputs = model(**inputs)
|
27 |
|
28 |
+
# Válasz visszaadása
|
29 |
+
response = tokenizer.decode(outputs.logits.argmax(dim=1)[0])
|
30 |
return response
|
31 |
|
32 |
# Dokumentum feltöltése drag and drop segítségével
|
|
|
36 |
document_text = ""
|
37 |
|
38 |
if document_file.type == "application/pdf":
|
39 |
+
# PDF fájl feldolgozása
|
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 fájl feldolgozása
|
47 |
docx_file = docx.Document(document_file)
|
48 |
for paragraph in docx_file.paragraphs:
|
49 |
document_text += paragraph.text
|
50 |
# Hasonlóan, itt is adhatunk hozzá sortörést a bekezdések közé:
|
51 |
document_text += "\n\n"
|
52 |
elif document_file.type == "application/msword":
|
53 |
+
# DOC fájl feldolgozása
|
54 |
doc_file = docx.Document(document_file)
|
55 |
for paragraph in doc_file.paragraphs:
|
56 |
document_text += paragraph.text
|