File size: 2,706 Bytes
b75809a ba036f9 748baf0 b75809a 748baf0 b75809a 748baf0 ba036f9 748baf0 b75809a ba036f9 b75809a ba036f9 748baf0 ba036f9 b75809a ba036f9 56ec0dc ba036f9 b75809a ba036f9 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
import streamlit as st
import pdfplumber
import docx
from transformers import AutoTokenizer, AutoModelForCausalLM
st.title("Jogi Dokumentumok AI Válaszgenerálás")
# Előző beszélgetések tárolása session state-ben
if "previous_conversations" not in st.session_state:
st.session_state.previous_conversations = []
# Korábbi beszélgetések törlése
if st.checkbox("Korábbi Beszélgetések Törlése"):
st.session_state.previous_conversations = []
# Tokenizáló modell és válaszgeneráló modell választása
tokenizer_name = st.selectbox("Tokenizáló Modell", ["bert-base-uncased", "bert-base-multilingual-cased"])
generator_name = st.selectbox("Válaszgeneráló Modell", ["microsoft/phi-2", "gpt2"])
tokenizer = AutoTokenizer.from_pretrained(tokenizer_name)
model = AutoModelForCausalLM.from_pretrained(generator_name, trust_remote_code=True)
# Dokumentum feltöltése drag and drop segítségével
document_file = st.file_uploader("Húzd ide a dokumentumot vagy kattints a feltöltéshez", type=["pdf", "docx", "doc"])
if document_file is not None:
if document_file.type == "application/pdf":
with pdfplumber.open(document_file) as pdf:
document_text = ""
for page in pdf.pages:
document_text += page.extract_text()
elif document_file.type == "application/vnd.openxmlformats-officedocument.wordprocessingml.document":
docx_file = docx.Document(document_file)
document_text = ""
for paragraph in docx_file.paragraphs:
document_text += paragraph.text
elif document_file.type == "application/msword":
doc_file = docx.Document(document_file)
document_text = ""
for paragraph in doc_file.paragraphs:
document_text += paragraph.text
else:
st.error("A fájltípus nem támogatott. Kérlek válassz ki egy PDF, DOCX vagy DOC fájlt!")
# Előző beszélgetésekhez csatolható kontextus
context = st.text_area("Korábbi Beszélgetéshez Tartozó Kontextus", "")
# Válaszgenerálás
if st.button("Generálj Választ"):
if context:
input_text = f"{context} {document_text}"
else:
input_text = document_text
# Model használata a válasz generálásához
response = generate_response(input_text, tokenizer, model)
# Válasz megjelenítése
st.subheader("Generált Válasz:")
st.write(response)
# Aktuális beszélgetés hozzáadása az előző beszélgetésekhez
st.session_state.previous_conversations.append({"input_text": input_text, "response": response})
else:
st.warning("Kérlek válassz ki egy dokumentumfájlt!")
|