kryman27 commited on
Commit
4344d8f
·
verified ·
1 Parent(s): d3bb8fd

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -9
app.py CHANGED
@@ -2,20 +2,24 @@ from transformers import TrOCRProcessor, VisionEncoderDecoderModel
2
  from PIL import Image
3
  import pdf2image
4
  import gradio as gr
 
 
5
  import torch
6
 
7
- # ✅ Używamy mniejszej wersji modelu dla szybszego działania
8
  MODEL_NAME = "microsoft/trocr-base-stage1"
9
-
10
- # ✅ Ładujemy model i procesor
11
  processor = TrOCRProcessor.from_pretrained(MODEL_NAME)
12
  model = VisionEncoderDecoderModel.from_pretrained(MODEL_NAME)
13
 
14
- # ✅ Funkcja do przetwarzania faktur PDF
15
- def process_invoice(pdf_file):
16
  try:
 
 
 
 
17
  # ✅ Konwersja PDF do obrazu
18
- images = pdf2image.convert_from_bytes(pdf_file.read())
19
 
20
  # ✅ Przetwarzanie pierwszej strony faktury
21
  image = images[0].convert("RGB")
@@ -29,13 +33,13 @@ def process_invoice(pdf_file):
29
  except Exception as e:
30
  return f"Błąd przetwarzania: {str(e)}"
31
 
32
- # ✅ Poprawne użycie `gr.File(type="binary")`
33
  interface = gr.Interface(
34
  fn=process_invoice,
35
- inputs=gr.File(type="binary"),
36
  outputs="text",
37
  title="AI Invoice Processor",
38
- description="Wgraj fakturę PDF, a AI wyodrębni dane tekstowe.",
39
  )
40
 
41
  # ✅ Uruchomienie aplikacji
 
2
  from PIL import Image
3
  import pdf2image
4
  import gradio as gr
5
+ import base64
6
+ import io
7
  import torch
8
 
9
+ # ✅ Używamy lżejszego modelu dla większej wydajności
10
  MODEL_NAME = "microsoft/trocr-base-stage1"
 
 
11
  processor = TrOCRProcessor.from_pretrained(MODEL_NAME)
12
  model = VisionEncoderDecoderModel.from_pretrained(MODEL_NAME)
13
 
14
+ # ✅ Funkcja przetwarzania faktury (odbiera Base64 PDF)
15
+ def process_invoice(pdf_base64):
16
  try:
17
+ # ✅ Dekodowanie Base64 na plik PDF
18
+ pdf_bytes = base64.b64decode(pdf_base64)
19
+ pdf_stream = io.BytesIO(pdf_bytes)
20
+
21
  # ✅ Konwersja PDF do obrazu
22
+ images = pdf2image.convert_from_bytes(pdf_stream.read())
23
 
24
  # ✅ Przetwarzanie pierwszej strony faktury
25
  image = images[0].convert("RGB")
 
33
  except Exception as e:
34
  return f"Błąd przetwarzania: {str(e)}"
35
 
36
+ # ✅ API Gradio (teraz akceptuje Base64 jako wejście)
37
  interface = gr.Interface(
38
  fn=process_invoice,
39
+ inputs=gr.Textbox(label="PDF w Base64"),
40
  outputs="text",
41
  title="AI Invoice Processor",
42
+ description="Prześlij fakturę jako Base64, a AI wyodrębni dane tekstowe.",
43
  )
44
 
45
  # ✅ Uruchomienie aplikacji