Update app.py
Browse files
app.py
CHANGED
@@ -7,6 +7,8 @@ from PIL import Image
|
|
7 |
import fitz # PyMuPDF
|
8 |
from typing import List
|
9 |
import os
|
|
|
|
|
10 |
|
11 |
# --- Model ve İşlemci Yükleme ---
|
12 |
# Modelin yalnızca bir kez yüklenmesini sağlamak için global olarak tanımlıyoruz.
|
@@ -42,16 +44,15 @@ def process_single_image(image: Image.Image) -> str:
|
|
42 |
outputs = model.generate(
|
43 |
pixel_values.to(device),
|
44 |
min_length=1,
|
45 |
-
max_new_tokens=4096,
|
46 |
bad_words_ids=[[processor.tokenizer.unk_token_id]],
|
47 |
)
|
48 |
|
49 |
# Çıktıyı okunabilir metne dönüştürme ve son işleme
|
50 |
sequence = processor.batch_decode(outputs, skip_special_tokens=True)
|
51 |
-
sequence = processor.post_process_generation(sequence, fix_markdown=False)
|
52 |
|
53 |
-
|
54 |
-
return "".join(sequence)
|
55 |
except Exception as e:
|
56 |
return f"Görüntü işlenirken bir hata oluştu: {e}"
|
57 |
|
@@ -61,10 +62,11 @@ def process_pdf_file(pdf_file) -> str:
|
|
61 |
return "Model yüklenemedi veya PDF dosyası yüklenmedi."
|
62 |
|
63 |
# DÜZELTME: Değişken, boş bir liste olarak doğru şekilde başlatıldı.
|
64 |
-
full_markdown_content =
|
65 |
doc = None # doc değişkenini try bloğundan önce tanımla
|
66 |
try:
|
67 |
# Gelen dosya nesnesinden PDF'i oku
|
|
|
68 |
doc = fitz.open(stream=pdf_file.read(), filetype="pdf")
|
69 |
|
70 |
for page_num in range(len(doc)):
|
@@ -142,10 +144,6 @@ if __name__ == "__main__":
|
|
142 |
# Örnek resim dosyasını indirme (eğer yoksa)
|
143 |
if not os.path.exists("nougat_paper_example.png"):
|
144 |
try:
|
145 |
-
import requests
|
146 |
-
from PIL import Image
|
147 |
-
from io import BytesIO
|
148 |
-
|
149 |
url = "https://huggingface.co/datasets/hf-internal-testing/fixtures_docvqa/resolve/main/nougat_paper.png"
|
150 |
response = requests.get(url)
|
151 |
img = Image.open(BytesIO(response.content))
|
@@ -154,4 +152,4 @@ if __name__ == "__main__":
|
|
154 |
except Exception as e:
|
155 |
print(f"Örnek resim indirilemedi: {e}")
|
156 |
|
157 |
-
demo.launch(debug=True)
|
|
|
7 |
import fitz # PyMuPDF
|
8 |
from typing import List
|
9 |
import os
|
10 |
+
import requests
|
11 |
+
from io import BytesIO
|
12 |
|
13 |
# --- Model ve İşlemci Yükleme ---
|
14 |
# Modelin yalnızca bir kez yüklenmesini sağlamak için global olarak tanımlıyoruz.
|
|
|
44 |
outputs = model.generate(
|
45 |
pixel_values.to(device),
|
46 |
min_length=1,
|
47 |
+
max_new_tokens=4096, # Hugging Face ücretsiz katmanlarında daha düşük bir değere ayarlamanız gerekebilir
|
48 |
bad_words_ids=[[processor.tokenizer.unk_token_id]],
|
49 |
)
|
50 |
|
51 |
# Çıktıyı okunabilir metne dönüştürme ve son işleme
|
52 |
sequence = processor.batch_decode(outputs, skip_special_tokens=True)
|
53 |
+
sequence = processor.post_process_generation(sequence[0], fix_markdown=False)
|
54 |
|
55 |
+
return sequence
|
|
|
56 |
except Exception as e:
|
57 |
return f"Görüntü işlenirken bir hata oluştu: {e}"
|
58 |
|
|
|
62 |
return "Model yüklenemedi veya PDF dosyası yüklenmedi."
|
63 |
|
64 |
# DÜZELTME: Değişken, boş bir liste olarak doğru şekilde başlatıldı.
|
65 |
+
full_markdown_content = []
|
66 |
doc = None # doc değişkenini try bloğundan önce tanımla
|
67 |
try:
|
68 |
# Gelen dosya nesnesinden PDF'i oku
|
69 |
+
# Gradio'nun geçici dosya nesnesinin adını kullanıyoruz
|
70 |
doc = fitz.open(stream=pdf_file.read(), filetype="pdf")
|
71 |
|
72 |
for page_num in range(len(doc)):
|
|
|
144 |
# Örnek resim dosyasını indirme (eğer yoksa)
|
145 |
if not os.path.exists("nougat_paper_example.png"):
|
146 |
try:
|
|
|
|
|
|
|
|
|
147 |
url = "https://huggingface.co/datasets/hf-internal-testing/fixtures_docvqa/resolve/main/nougat_paper.png"
|
148 |
response = requests.get(url)
|
149 |
img = Image.open(BytesIO(response.content))
|
|
|
152 |
except Exception as e:
|
153 |
print(f"Örnek resim indirilemedi: {e}")
|
154 |
|
155 |
+
demo.launch(debug=True)
|