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!")