Skip to main content

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 produkcyjnych
  • make install-dev – instalacja zależności developerskich + pre-commit
  • make setup – pełny setup środowiska
  • make clean – czyszczenie środowiska
  • make download-models – pobranie modeli OCR/LLM

Uruchamianie

  • 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

Testowanie i jakość kodu

  • make test – testy jednostkowe i integracyjne
  • make test-cov – testy z pokryciem kodu
  • make lint – lintowanie (flake8, mypy, black, isort)
  • make format – autoformatowanie kodu
  • make validate – walidacja instalacji
  • make 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 (easyocr lub paddleocr)
  • 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

pocro-0.1.4.tar.gz (70.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pocro-0.1.4-py3-none-any.whl (78.5 kB view details)

Uploaded Python 3

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

Hashes for pocro-0.1.4.tar.gz
Algorithm Hash digest
SHA256 78117ddc28d02ee11eb120c6b45468296df4951f9e484b4af406289433582185
MD5 d85e9f86c16cbc6e9bc7c0e516c4f3d2
BLAKE2b-256 c242a02a2223457f43e13998641267910d19f4078de4fa28e0834900f7fdc9fc

See more details on using hashes here.

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

Hashes for pocro-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 4b68dc7ec467ea5cde24b581d272c0fa1e6a772d284268e108148f9da85c63e1
MD5 4b6f445ef03f2ef83fd3c43944eec6e8
BLAKE2b-256 7532f8828df5dde83e2f67ab9725feead06902e1e4338003bf28054556d24466

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page