European Invoice OCR and Data Extraction Tool
Project description
pocro
System do automatycznego przetwarzania faktur z wykorzystaniem OCR i LLM.
Kluczowe funkcjonalności:
✅ Pełny stack OCR+LLM - EasyOCR/PaddleOCR + Mistral/Qwen/LLaMA
✅ GPU optimized - AWQ/NF4 quantization dla 8GB VRAM
✅ Multilingual - DE/EN/EE z automatyczną detekcją języka
✅ EU compliance - Schema EN 16931 i PEPPOL
✅ Production ready - Docker, monitoring, health checks
✅ Comprehensive tests - Unit, integration, performance
✅ Easy deployment - Makefile, scripts, dokumentacja
✅ Flexible configuration - Environment variables and Pydantic settings
✅ Robust error handling - Fallback mechanisms and detailed logging
Wymagania systemowe
- Python 3.10+
- Docker, docker-compose (do uruchomienia w kontenerze)
- (Opcjonalnie) GPU z min. 8GB VRAM dla modeli LLM
- (Opcjonalnie) Połączenie z internetem do pobrania modeli
Szybki start:
# 1. Klonowanie i setup
git clone git@github.com:fin-officer/pocro.git
cd pocro
cp .env.example .env
# 2. Instalacja zależności produkcyjnych
make install
# 3. (Opcjonalnie) Instalacja zależności developerskich
make install-dev
# 4. Setup środowiska (modele, uprawnienia, pre-commit)
make setup
# 5. Pobranie modeli OCR/LLM
make download-models
# 6. Uruchomienie lokalnie
make run
# 7. Lub z Docker
make docker-build
make docker-run
# 8. Testy
make test
make test-cov
# 9. Lintowanie i formatowanie
make lint
make format
# 10. Walidacja instalacji
make validate
# 11. Benchmark
make benchmark
Struktura projektu
pocro/
├── README.md
├── requirements.txt
├── requirements-dev.txt
├── pyproject.toml
├── .env.example
├── .gitignore
├── .dockerignore
├── Dockerfile
├── docker-compose.yml
├── docker-compose.dev.yml
├── Makefile
├── setup.py
│
├── src/
│ ├── __init__.py
│ ├── main.py
│ ├── api/
│ ├── config/
│ ├── core/
│ ├── models/
│ ├── prompts/
│ └── utils/
│
├── scripts/
│ ├── benchmark.py
│ ├── download_models.py
│ ├── migrate_data.py
│ ├── setup_environment.sh
│ └── validate_installation.py
│
├── tests/
│ ├── __init__.py
│ ├── conftest.py
│ ├── fixtures/
│ ├── integration/
│ ├── performance/
│ ├── test_main.py
│ └── unit/
│
├── configs/
│ ├── deployment/
│ ├── model_configs/
│ └── ocr_configs/
│
├── monitoring/
│ ├── __init__.py
│ ├── dashboards/
│ ├── health_check.py
│ └── metrics.py
│
├── data/
├── logs/
├── docs/
└── venv/
- src/ – kod źródłowy aplikacji (API, core, modele, konfiguracje, prompty, utils)
- scripts/ – skrypty narzędziowe: setup, walidacja, pobieranie modeli, migracje, benchmark
- tests/ – testy jednostkowe, integracyjne, performance, fixtures
- configs/ – konfiguracje deploymentu, modeli, OCR
- monitoring/ – monitoring, health-check, metryki, dashboardy
- data/ – dane wejściowe/wyjściowe
- logs/ – logi aplikacji
- docs/ – dokumentacja
Najważniejsze komendy Makefile
Środowisko i zależności
make install– instalacja zależności produkcyjnychmake install-dev– instalacja zależności developerskich + pre-commitmake setup– pełny setup środowiskamake clean– czyszczenie środowiskamake download-models– pobranie modeli OCR/LLM
Uruchamianie
make run– uruchomienie lokalnie (FastAPI/Uvicorn)make docker-build– budowa obrazu Dockermake docker-run– uruchomienie Dockeramake docker-dev– uruchomienie środowiska developerskiego w Dockerzemake docker-stop– zatrzymanie kontenerów Docker
Testowanie i jakość kodu
make test– testy jednostkowe i integracyjnemake test-cov– testy z pokryciem kodumake lint– lintowanie (flake8, mypy, black, isort)make format– autoformatowanie kodumake validate– walidacja instalacjimake benchmark– benchmark modeli/algorytmów
Pomocnicze
-
make help– wyświetla dostępne komendy -
make check-env– sprawdza poprawność środowiska -
make update-deps– aktualizuje zależności do najnowszych wersji -
make install– instalacja zależności produkcyjnych -
make install-dev– instalacja zależności developerskich + pre-commit -
make setup– pełny setup środowiska -
make run– uruchomienie lokalnie (FastAPI/Uvicorn) -
make docker-build– budowa obrazu Docker -
make docker-run– uruchomienie Dockera -
make docker-dev– uruchomienie środowiska developerskiego w Dockerze -
make docker-stop– zatrzymanie kontenerów Docker -
make test– testy -
make test-cov– testy z pokryciem kodu -
make lint– lintowanie (flake8, mypy, black, isort) -
make format– autoformatowanie kodu -
make clean– czyszczenie środowiska -
make validate– walidacja instalacji -
make download-models– pobranie modeli OCR/LLM -
make benchmark– benchmark modeli/algorytmów
Konfiguracja środowiska
Plik .env
Skopiuj przykładową konfigurację i dostosuj do swoich potrzeb:
cp .env.example .env
Kluczowe zmienne środowiskowe:
MODEL_NAME- nazwa modelu LLM (domyślnie:facebook/opt-125m)OCR_ENGINE- silnik OCR do użycia (easyocrlubpaddleocr)LOG_LEVEL- poziom logowania (DEBUG,INFO,WARNING,ERROR)CACHE_DIR- katalog na cache modeli
Zarządzanie zależnościami
Projekt używa Poetry do zarządzania zależnościami. Zainstaluj zależności:
poetry install # Dla środowiska developerskiego
poetry install --no-dev # Tylko zależności produkcyjne
Testowanie
Uruchom pełną baterię testów:
make test # Testy jednostkowe i integracyjne
make test-cov # Testy z pokryciem kodu
make lint # Sprawdzenie jakości kodu
Dokumentacja
Szczegółowa dokumentacja dostępna jest w katalogu docs/:
Masz pytania lub chcesz zgłosić błąd? Otwórz issue lub napisz na contact@finofficer.com
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pocro-0.1.4.tar.gz.
File metadata
- Download URL: pocro-0.1.4.tar.gz
- Upload date:
- Size: 70.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.3 CPython/3.13.3 Linux/6.14.11-300.fc42.x86_64
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
78117ddc28d02ee11eb120c6b45468296df4951f9e484b4af406289433582185
|
|
| MD5 |
d85e9f86c16cbc6e9bc7c0e516c4f3d2
|
|
| BLAKE2b-256 |
c242a02a2223457f43e13998641267910d19f4078de4fa28e0834900f7fdc9fc
|
File details
Details for the file pocro-0.1.4-py3-none-any.whl.
File metadata
- Download URL: pocro-0.1.4-py3-none-any.whl
- Upload date:
- Size: 78.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.3 CPython/3.13.3 Linux/6.14.11-300.fc42.x86_64
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b68dc7ec467ea5cde24b581d272c0fa1e6a772d284268e108148f9da85c63e1
|
|
| MD5 |
4b6f445ef03f2ef83fd3c43944eec6e8
|
|
| BLAKE2b-256 |
7532f8828df5dde83e2f67ab9725feead06902e1e4338003bf28054556d24466
|