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
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)
| File | Size | Uploaded | |
|---|---|---|---|
| pocro-0.1.5.tar.gz | 70.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|