albhu commited on
Commit
f832c91
·
verified ·
1 Parent(s): 20e0aad

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -10
app.py CHANGED
@@ -1,7 +1,9 @@
1
  import streamlit as st
 
 
2
  from transformers import AutoTokenizer, AutoModelForCausalLM
3
 
4
- st.title("Jogi Dokumentumok AI Válaszgenerálás")
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
- tokenizer_name = "pile-of-law/legalbert-large-1.7M-2"
16
- model_name = "apple/OpenELM-3B-Instruct"
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
- input_ids = tokenizer.encode(input_text, return_tensors="pt", max_length=tokenizer.model_max_length, truncation=True)
25
 
26
  # Modell használata a válasz generálásához
27
- output = model.generate(input_ids, num_return_sequences=1, pad_token_id=tokenizer.eos_token_id)
28
 
29
- # Decoding és válasz visszaadása
30
- response = tokenizer.decode(output[0], skip_special_tokens=True)
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