Skip to main content

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

Metadata

Release files for pocro 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pocro 0.1.5
File Size Uploaded
pocro-0.1.5.tar.gz 70.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pocro 0.1.5
File Interpreter ABI Platform
pocro-0.1.5-py3-none-any.whl Python 3 none any Details

Total release size: 148.8 kB

Release files / pocro-0.1.5.tar.gz

Download URL pocro-0.1.5.tar.gz
Size 70.3 kB
Tags Source
SHA-256 checksum
How to use checksums
d5594c5ca70228044e29b766627da3bd547171bd019e98ba82b872d891f3aa5a
BLAKE2b-256 checksum
How to use checksums
0c8481730a168eb1d73e5e59bd332e366f3fffa8ae6296107d85fb21ad8e7f5b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.3 CPython/3.13.3 Linux/6.14.11-300.fc42.x86_64

Release files / pocro-0.1.5-py3-none-any.whl

Download URL pocro-0.1.5-py3-none-any.whl
Size 78.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d3ded37e84e1d396dfa3bbd4fc26a9c06c090cdba0af0cd7b657b3b44575ddde
BLAKE2b-256 checksum
How to use checksums
c3fa6e880ce9a2552f9303f46e93a2769f76edb4fe569efe29e718ddcfecfcea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.3 CPython/3.13.3 Linux/6.14.11-300.fc42.x86_64

Release history Release notifications | RSS feed

This release

0.1.5 This release

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page