albhu commited on
Commit
102a394
·
verified ·
1 Parent(s): 07dae16

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -35
app.py CHANGED
@@ -1,57 +1,40 @@
1
  import streamlit as st
2
- from transformers import AutoTokenizer, AutoModelForSeq2SeqLM, pipeline
3
- from sentence_transformers import SentenceTransformer
4
- import faiss
5
- import numpy as np
6
 
7
- # Generatív Modell Betöltése
8
  tokenizer = AutoTokenizer.from_pretrained("SZTAKI-HLT/hubert-base-cc")
9
- gpt_model = AutoModelForSeq2SeqLM.from_pretrained("SZTAKI-HLT/hubert-base-cc")
10
- generate_answer = pipeline("text2text-generation", model=gpt_model, tokenizer=tokenizer)
11
-
12
- # FAISS index létrehozása (az esetleges további funkciókhoz)
13
- dimension = 384 # Paraphrase-MiniLM-L6-v2 modell embedding dimenziója
14
- embedder = SentenceTransformer("sentence-transformers/paraphrase-MiniLM-L6-v2")
15
- index = faiss.IndexFlatL2(dimension)
16
- document_chunks = []
17
- chunk_embeddings = []
18
 
19
  # Streamlit alkalmazás
20
- st.title("AI Jogi Chatbot - Dokumentumalapú Válaszadás ChatGPT-stílusban")
21
 
22
- # Dokumentum feltöltése és indexelése
23
- uploaded_file = st.file_uploader("Töltsön fel egy dokumentumot", type=["txt", "pdf"])
24
 
25
  if uploaded_file:
26
  try:
27
- # Próbáljuk meg UTF-8 kódolással olvasni
28
  context = uploaded_file.read().decode("utf-8")
29
  except UnicodeDecodeError:
30
- # Ha nem sikerül, próbáljuk meg ISO-8859-1 kódolással
31
  context = uploaded_file.read().decode("ISO-8859-1")
32
 
33
  # Teljes dokumentum megjelenítése
34
  st.write("### Feltöltött dokumentum tartalma:")
35
  st.write(context)
36
-
37
- # Szöveg feldarabolása és embedding létrehozása FAISS indexhez (opcionális a későbbi használathoz)
38
- paragraphs = context.split("\n\n")
39
- for paragraph in paragraphs:
40
- if len(paragraph.strip()) > 0:
41
- embedding = embedder.encode(paragraph).reshape(1, -1)
42
- document_chunks.append(paragraph)
43
- chunk_embeddings.append(embedding)
44
- index.add(embedding)
45
 
46
- st.write(f"A dokumentum sikeresen indexelve. {len(paragraphs)} bekezdés feldolgozva.")
47
-
48
  # Chatelés a dokumentum kontextusában
49
  st.write("### Chat")
50
  question = st.text_input("Írja be a kérdését a dokumentumról:")
51
-
52
  if question:
53
- # Dokumentum-alapú generatív válaszadás
54
- input_text = f"Kérdés: {question}\nDokumentum tartalma: {context}"
55
- response = generate_answer(input_text, max_length=150)[0]["generated_text"]
56
-
 
 
 
 
 
57
  st.write("Válasz:", response)
 
1
  import streamlit as st
2
+ from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
3
+ import torch
 
 
4
 
5
+ # Modell betöltése
6
  tokenizer = AutoTokenizer.from_pretrained("SZTAKI-HLT/hubert-base-cc")
7
+ model = AutoModelForSeq2SeqLM.from_pretrained("SZTAKI-HLT/hubert-base-cc")
 
 
 
 
 
 
 
 
8
 
9
  # Streamlit alkalmazás
10
+ st.title("AI Jogi Chatbot Magyar Nyelven")
11
 
12
+ # Dokumentum feltöltése
13
+ uploaded_file = st.file_uploader("Töltsön fel egy dokumentumot", type=["txt"])
14
 
15
  if uploaded_file:
16
  try:
17
+ # Szöveg beolvasása
18
  context = uploaded_file.read().decode("utf-8")
19
  except UnicodeDecodeError:
 
20
  context = uploaded_file.read().decode("ISO-8859-1")
21
 
22
  # Teljes dokumentum megjelenítése
23
  st.write("### Feltöltött dokumentum tartalma:")
24
  st.write(context)
 
 
 
 
 
 
 
 
 
25
 
 
 
26
  # Chatelés a dokumentum kontextusában
27
  st.write("### Chat")
28
  question = st.text_input("Írja be a kérdését a dokumentumról:")
29
+
30
  if question:
31
+ with st.spinner('Válasz generálása...'):
32
+ # Bemenet összeállítása
33
+ input_text = f"{context}\n\nKérdés: {question}\nVálasz:"
34
+ inputs = tokenizer.encode(input_text, return_tensors="pt", max_length=512, truncation=True)
35
+
36
+ # Válasz generálása
37
+ outputs = model.generate(inputs, max_length=150, num_beams=4, early_stopping=True)
38
+ response = tokenizer.decode(outputs[0], skip_special_tokens=True)
39
+
40
  st.write("Válasz:", response)