|
import streamlit as st |
|
import pdfplumber |
|
import docx |
|
from transformers import AutoTokenizer, AutoModelForCausalLM |
|
|
|
st.title("Jogi Dokumentumok AI Válaszgenerálás") |
|
|
|
|
|
if "previous_conversations" not in st.session_state: |
|
st.session_state.previous_conversations = [] |
|
|
|
|
|
if st.checkbox("Korábbi Beszélgetések Törlése"): |
|
st.session_state.previous_conversations = [] |
|
|
|
|
|
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) |
|
|
|
|
|
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!") |
|
|
|
|
|
context = st.text_area("Korábbi Beszélgetéshez Tartozó Kontextus", "") |
|
|
|
|
|
if st.button("Generálj Választ"): |
|
if context: |
|
input_text = f"{context} {document_text}" |
|
else: |
|
input_text = document_text |
|
|
|
|
|
response = generate_response(input_text, tokenizer, model) |
|
|
|
|
|
st.subheader("Generált Válasz:") |
|
st.write(response) |
|
|
|
|
|
st.session_state.previous_conversations.append({"input_text": input_text, "response": response}) |
|
else: |
|
st.warning("Kérlek válassz ki egy dokumentumfájlt!") |
|
|