la04 commited on
Commit
1d58bcf
·
verified ·
1 Parent(s): 598dc04

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +9 -15
app.py CHANGED
@@ -1,11 +1,6 @@
1
  import gradio as gr
2
- import easyocr
3
- from pdf2image import convert_from_path
4
  from transformers import RagTokenizer, RagRetriever, RagSequenceForGeneration
5
- import os
6
-
7
- # Initialisiere EasyOCR für Deutsch
8
- reader = easyocr.Reader(['de']) # für die deutsche Sprache
9
 
10
  # Initialisiere das deutsche Modell und den Tokenizer für RAG
11
  model_name = "deepset/gbert-base" # Beispiel für ein deutsches Modell
@@ -13,23 +8,22 @@ tokenizer = RagTokenizer.from_pretrained(model_name)
13
  model = RagSequenceForGeneration.from_pretrained(model_name)
14
  retriever = RagRetriever.from_pretrained(model_name, index_name="exact", use_dummy_dataset=True)
15
 
16
- # OCR-Funktion: Konvertiert PDF zu Bildern und extrahiert Text mit EasyOCR
17
  def extract_text_from_pdf(file):
18
- # Konvertiere PDF-Seiten in Bilder
19
- images = convert_from_path(file.name, 300) # 300 DPI für bessere Qualität
20
 
 
21
  text = ""
22
- # Extrahiere Text aus jedem Bild mit EasyOCR
23
- for image in images:
24
- ocr_result = reader.readtext(image)
25
- for detection in ocr_result:
26
- text += detection[1] + "\n"
27
 
28
  return text
29
 
30
  # Funktion zur Generierung einer Antwort basierend auf dem hochgeladenen Dokument
31
  def get_rag_answer(input_message, uploaded_file):
32
- # Extrahiere den Text aus dem hochgeladenen PDF-Dokument mit OCR
33
  document_text = extract_text_from_pdf(uploaded_file)
34
 
35
  # Simuliere den Retrieval-Mechanismus, indem wir den extrahierten Text verwenden
 
1
  import gradio as gr
2
+ import fitz # PyMuPDF
 
3
  from transformers import RagTokenizer, RagRetriever, RagSequenceForGeneration
 
 
 
 
4
 
5
  # Initialisiere das deutsche Modell und den Tokenizer für RAG
6
  model_name = "deepset/gbert-base" # Beispiel für ein deutsches Modell
 
8
  model = RagSequenceForGeneration.from_pretrained(model_name)
9
  retriever = RagRetriever.from_pretrained(model_name, index_name="exact", use_dummy_dataset=True)
10
 
11
+ # Funktion zur Textextraktion aus PDF (ohne OCR)
12
  def extract_text_from_pdf(file):
13
+ # Öffne die PDF-Datei mit PyMuPDF
14
+ doc = fitz.open(file.name)
15
 
16
+ # Extrahiere Text aus jeder Seite der PDF
17
  text = ""
18
+ for page_num in range(len(doc)):
19
+ page = doc.load_page(page_num)
20
+ text += page.get_text("text") # Extrahiert den Text der Seite
 
 
21
 
22
  return text
23
 
24
  # Funktion zur Generierung einer Antwort basierend auf dem hochgeladenen Dokument
25
  def get_rag_answer(input_message, uploaded_file):
26
+ # Extrahiere den Text aus dem hochgeladenen PDF-Dokument
27
  document_text = extract_text_from_pdf(uploaded_file)
28
 
29
  # Simuliere den Retrieval-Mechanismus, indem wir den extrahierten Text verwenden