|
|
--- |
|
|
license: mit |
|
|
language: |
|
|
- cs |
|
|
base_model: |
|
|
- naver-clova-ix/donut-base-finetuned-cord-v2 |
|
|
tags: |
|
|
- Invoices |
|
|
- InformationExtraction |
|
|
- Accounting |
|
|
- Donut |
|
|
- Czech |
|
|
--- |
|
|
|
|
|
# Donut – Faktury v češtině / Donut – Czech Invoices |
|
|
|
|
|
--- |
|
|
|
|
|
## 🇨🇿 Popis (čeština) |
|
|
|
|
|
Tento model je založený na [`naver-clova-ix/donut-base-finetuned-cord-v2`](https://huggingface.co/naver-clova-ix/donut-base-finetuned-cord-v2) a byl dále trénován na **českých fakturách**. |
|
|
Cílem je **extrakce strukturovaných informací** z faktur v českém jazyce, například: |
|
|
|
|
|
- dodavatel / odběratel |
|
|
- datum vystavení, splatnosti a zdanitelného plnění |
|
|
- položky faktury (popis, množství, cena, DPH) |
|
|
- celková částka k úhradě |
|
|
|
|
|
Model je vhodný pro použití v účetnictví, automatizaci zpracování dokladů nebo pro trénování vlastních OCR/IE pipeline. |
|
|
|
|
|
--- |
|
|
|
|
|
## 🇨🇿 Použití |
|
|
|
|
|
```python |
|
|
from transformers import DonutProcessor, VisionEncoderDecoderModel |
|
|
from PIL import Image |
|
|
|
|
|
processor = DonutProcessor.from_pretrained("tvuj-username/donut-invoices-cs") |
|
|
model = VisionEncoderDecoderModel.from_pretrained("tvuj-username/donut-invoices-cs") |
|
|
|
|
|
image = Image.open("faktura.png") |
|
|
pixel_values = processor(image, return_tensors="pt").pixel_values |
|
|
|
|
|
task_prompt = "<s_cord-v2>" |
|
|
decoder_input_ids = processor.tokenizer(task_prompt, add_special_tokens=False, return_tensors="pt").input_ids |
|
|
|
|
|
outputs = model.generate( |
|
|
pixel_values, |
|
|
decoder_input_ids=decoder_input_ids, |
|
|
max_length=model.config.decoder.max_position_embeddings, |
|
|
early_stopping=True, |
|
|
pad_token_id=processor.tokenizer.pad_token_id, |
|
|
eos_token_id=processor.tokenizer.eos_token_id, |
|
|
use_cache=True, |
|
|
num_beams=1, |
|
|
bad_words_ids=[[processor.tokenizer.unk_token_id]], |
|
|
return_dict_in_generate=True, |
|
|
) |
|
|
|
|
|
sequence = processor.batch_decode(outputs.sequences)[0] |
|
|
print(processor.token2json(sequence)) |
|
|
|
|
|
``` |
|
|
## VZOROVÝ VÝSTUP(JSON) |
|
|
```javascript |
|
|
|
|
|
{ |
|
|
"issue_date": "07.03.2023", |
|
|
"due_date": "28.03.2023", |
|
|
"supplier": { "name": "SmartAuto", "register_id": "96119557" }, |
|
|
"customer": { "name": "Barbora Kratochvílová" }, |
|
|
"items": [ |
|
|
{"description": "Boxovací pytel", "quantity": 37, "ppu": 88080, "price_with_vat": 3258960.0}, |
|
|
{"description": "DVD přehrávač", "quantity": 24, "ppu": 98826, "price_with_vat": 2371824.0} |
|
|
], |
|
|
"total_price": 8250672.0, |
|
|
"currency": "Kč", |
|
|
"invoice_number": "2081-653246" |
|
|
} |