Projekt koncentruje się na implementacji zaawansowanego systemu klasyfikacji dokumentów, wykorzystującego potencjał chmury obliczeniowej oraz technik uczenia maszynowego. System został zaprojektowany z myślą o automatyzacji procesów analizy i kategoryzacji różnorodnych dokumentów.
- Framework ML: PyTorch 2.5.0
- Model bazowy: LayoutLMv3
- Summarization: LLama 3.2 3B
- OCR Engine: EasyOCR oraz Tesseract
- API Framework: FastAPI
- Konteneryzacja: Docker z obrazami wieloarchitekturowymi (amd64/arm64)
- Zarządzanie zależnościami: uv
- Formatowanie kodu: Ruff
- CI/CD: GitHub Actions
- Przetwarzanie obrazów: Pillow, pdf2image
Important
Minimalna wspierana wersja Python to 3.12.
Wszystkie wymagane biblioteki znajdują się w pliku pyproject.toml
oraz requirements.txt
. Aby zainstalować wszystkie
zależności, należy uruchomić poniższą komendę:
pip install -r requirements.txt
lub przy użyciu uv
:
uv sync --frozen
- Wsparcie dla różnorodnych formatów dokumentów (PDF, JPEG, PNG, WEBP)
- Przetwarzanie dokumentów w języku angielskim
- Klasyfikacja dokumentów z założonym opóźnieniem do 15 sekund
- Bezpieczne przechowywanie dokumentów z szyfrowaniem
- Logowanie operacji systemowych
-
REST API zgodne ze standardem OpenAPI 3.0
-
Endpointy do:
- Przesyłania dokumentów
- Pobierania wyników klasyfikacji
- Zarządzania dokumentami
- Wyszukiwania i filtrowania
-
Pełna dokumentacja API w formacie OpenAPI
-
Baza danych do przechowywania:
- Dokumentów w formie zaszyfrowanej
- Wyników klasyfikacji
- Adnotacji
-
CI/CD do automatyzacji procesu wdrożenia
- Wsparcie dla kontenerów wieloarchitekturowych
- Automatyczne budowanie obrazów Docker
- Obsługa przynajmniej języka polskiego i angielskiego
- Automatyczne wykrywanie języka dokumentu
- Ekstrakcja kluczowych informacji z dokumentu
- Analiza układu dokumentu
-
Intuicyjny interfejs webowy do:
- Przeglądania dokumentów według kategorii
- Zarządzania klasyfikacją
- Wizualizacji statystyk
- Eksportu danych i raportów
- Formaty: PDF
- Maksymalny rozmiar: 20MB
- Limit stron: 8
- Formaty zdjęć: JPEG, PNG, WEBP
- Maksymalny rozmiar: 20MB
- Maksymalna rozdzielczość: 2480px x 3508px
- Akceptowane tryby kolorów: RGB, CMYK, skala szarości
- Długość opisu:
- Minimum: 100 słów
- Maksimum: 300 słów
- Czas przetwarzania:
- Generowanie opisu: maksymalnie 10 sekund
- Klasyfikacja dokumentu: maksymalnie 15 sekund
- OCR: maksymalnie 15 sekund na stronę
Data | Etap | Kluczowe zadania |
---|---|---|
8 XI 2024 | Wstępna konfiguracja środowiska | • Konfiguracja środowiska i kontenerów • Utworzenie repozytorium • Utworzenie potoku przygotowania danych • Implementacja podstawowego OCR |
22 XI 2024 | Model bazowy | • Implementacja LayoutLMv3 • Konfiguracja bazy danych • Podstawowa klasyfikacja |
6 XII 2024 | Optymalizacja | • Analiza różnych metod uczenia maszynowego • Implementacja generowania podsumowań • Wybór optymalnego rozwiązania |
20 XII 2024 | Rozszerzenia | • Implementacja dodatkowych funkcji |
17 I 2025 | Interfejs użytkownika | • Implementacja interfejsu webowego • Dokumentacja końcowa |