File size: 1,096 Bytes
07d0354
814c19e
10213d3
 
 
 
814c19e
ce53438
814c19e
db576bd
07d0354
10213d3
 
 
 
db576bd
10213d3
 
 
 
07d0354
10213d3
07d0354
ce53438
07d0354
ce53438
814c19e
 
ce53438
 
07d0354
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import gradio as gr
import pdfplumber
from transformers import pipeline

# Inicjalizacja modelu LayoutLM do ekstrakcji tekstu
extractor = pipeline("ner", model="microsoft/layoutlmv3-base", aggregation_strategy="simple")

def extract_seller(pdf_file):
    with pdfplumber.open(pdf_file) as pdf:
        text = "\n".join(page.extract_text() for page in pdf.pages if page.extract_text())

    # Przetwarzanie tekstu modelem NLP
    entities = extractor(text)

    seller_name = None

    for entity in entities:
        if "ORG" in entity["entity_group"]:  # Szukamy nazw organizacji
            seller_name = entity["word"]
            break  # Pobieramy pierwszą wykrytą firmę jako sprzedawcę

    return {"Sprzedawca": seller_name if seller_name else "Nie znaleziono"}

# Interfejs użytkownika w Hugging Face Spaces
iface = gr.Interface(
    fn=extract_seller,
    inputs=gr.File(label="Wybierz plik PDF"),
    outputs="json",
    title="Ekstrakcja Sprzedawcy z Faktury",
    description="Prześlij plik PDF, aby wydobyć nazwę sprzedawcy."
)

if __name__ == "__main__":
    iface.launch()