Ten przewodnik przeprowadzi Cię przez proces konfiguracji systemu do przetwarzania faktur z wykorzystaniem OCR i LLM.
Uwaga: W razie problemów z instalacją, zapoznaj się z przewodnikiem rozwiązywania problemów.
git clone git@github.com:fin-officer/pocro.git
cd pocro
# Skopiuj przykładowy plik środowiskowy
cp .env.example .env
Zmodyfikuj plik .env
zgodnie ze swoimi potrzebami. Minimalna konfiguracja:
MODEL_NAME=facebook/opt-125m # lub inny preferowany model
OCR_ENGINE=easyocr # lub paddleocr
LOG_LEVEL=INFO
# Utwórz i aktywuj środowisko wirtualne (zalecane)
python -m venv .venv
source .venv/bin/activate # Na Windows: .venv\Scripts\activate
# Zainstaluj zależności za pomocą Poetry
poetry install # Dla środowiska developerskiego
# lub
poetry install --no-dev # Tylko zależności produkcyjne
make run # Używa Uvicorn z automatycznym przeładowaniem
# lub ręcznie:
# uvicorn src.main:app --host 0.0.0.0 --port 8088 --reload
API będzie dostępne pod adresem: http://localhost:8088
Sprawdź działanie:
curl http://localhost:8088/health
Kluczowe opcje konfiguracyjne w pliku .env
:
MODEL_NAME
- Nazwa modelu z Hugging Face (np. facebook/opt-125m
)QUANTIZATION
- Metoda kwantyzacji modelu (domyślnie: awq
)MAX_MODEL_LENGTH
- Maksymalna długość generowanego tekstu (domyślnie: 2048
)TEMPERATURE
- Parametr temperatury generowaniaAby przetworzyć fakturę, użyj komendy pocro
:
# Przetwarzanie pojedynczej faktury
pocro process ścieżka/do/faktura.pdf
# Z określonym plikiem wyjściowym
pocro process ścieżka/do/faktura.pdf --output wynik.json
# Wyświetlenie pomocy
pocro --help
pocro process --help
Dostępne opcje dla komendy process
:
--output
, -o
: Określa plik wyjściowy (domyślnie: <nazwa_pliku_wejsciowego>.json
)--format
, -f
: Format wyjściowy (json
lub csv
, domyślnie: json
)HOST
- Adres, na którym ma działać serwer (domyślnie: 0.0.0.0
)PORT
- Port serwera (domyślnie: 8088
)DEBUG
- Tryb debugowania (domyślnie: False
)LOG_LEVEL
- Poziom logowania (DEBUG
, INFO
, WARNING
, ERROR
)CACHE_DIR
- Katalog na cache modeli (domyślnie: ./.cache
)# Konfiguracja modelu
MODEL_NAME=facebook/opt-125m
QUANTIZATION=awq
MAX_MODEL_LENGTH=2048
# Konfiguracja OCR
OCR_ENGINE=easyocr
OCR_LANGUAGES=pl,en,de
# Konfiguracja serwera
HOST=0.0.0.0
PORT=8088
DEBUG=False
LOG_LEVEL=INFO
CACHE_DIR=./.cache
make docker-build
lub ręcznie:
docker build -t pocro .
make docker-run
lub ręcznie:
docker run -d --name pocro -p 8088:8088 --env-file .env pocro
make docker-stop
curl http://localhost:8088/health
Powinno zwrócić: {"status":"ok"}
curl -X POST http://localhost:8088/process \
-H "Content-Type: application/json" \
-d '{
"invoice_number": "FV/2023/1234",
"issue_date": "2023-05-15",
"due_date": "2023-06-14",
"total_amount": 1234.56,
"currency": "PLN",
"supplier": {
"name": "Przykładowy Dostawca Sp. z o.o.",
"tax_id": "1234567890"
},
"customer": {
"name": "Klient Przykładowy",
"tax_id": "0987654321"
},
"items": [
{
"description": "Usługa przykładowa",
"quantity": 1,
"unit_price": 1000.00,
"tax_rate": 23,
"amount": 1230.00
}
]
}'
# Zainstaluj brakujące zależności
poetry install
MODEL_NAME
w .env
wskazuje na poprawny model~/.cache/
)OCR_GPU=False
PORT
w pliku .env
lsof -i :8088
# Wyczyść środowisko i zainstaluj ponownie
rm -rf .venv
python -m venv .venv
source .venv/bin/activate
poetry install
W przypadku dalszych problemów, zapoznaj się z przewodnikiem Rozwiązywanie problemów.