LLM Orchestrator Microservices
System do uruchamiania i testowania modeli językowych (LLM) w architekturze mikrousług z wykorzystaniem Docker.
Funkcjonalności
- Architektura mikrousług - model-service i api-gateway
- Optymalizacja wydajności - cachowanie pakietów i modeli
- Łatwe testowanie - środowisko testowe z noVNC i przeglądarką
- Monitorowanie - dashboard Traefik do monitorowania mikrousług
- Skalowalność - możliwość uruchomienia wielu instancji model-service
Wymagania
- Docker
- docker-compose
- Minimum 4GB RAM dla kontenera modelu LLM
- Dostęp do internetu (do pobierania obrazów Docker i modeli)
Szybki start
1. Uruchomienie systemu
./run.sh
Ten skrypt automatycznie:
- Sprawdza wymagania systemowe
- Wykonuje migrację do mikrousług (jeśli potrzebna)
- Buduje i uruchamia wszystkie kontenery
- Konfiguruje środowisko testowe
2. Testowanie systemu
Po uruchomieniu systemu:
- Otwórz przeglądarkę i przejdź do adresu:
http://localhost:6080
- Zaloguj się do noVNC używając hasła:
password
- W przeglądarce Firefox wewnątrz noVNC, otwórz:
file:///config/test_llm.html
3. Monitorowanie systemu
Aby monitorować stan usług i postęp ładowania modelu LLM:
./monitor.sh
Dostępne opcje monitorowania:
./monitor.sh --live
- monitorowanie w czasie rzeczywistym (aktualizacja co 5 sekund)./monitor.sh --summary
- wyświetlenie tylko podsumowania statusu./monitor.sh --model
- monitorowanie procesu ładowania modelu./monitor.sh --api
- monitorowanie statusu API./monitor.sh --help
- wyświetlenie wszystkich dostępnych opcji
4. Zatrzymanie systemu
./stop.sh
Rozwiązywanie problemów
Jeśli występują problemy z uruchomieniem kontenerów za pomocą run.sh
, użyj alternatywnego skryptu:
./reset_and_run.sh
Ten skrypt całkowicie resetuje środowisko Docker i uruchamia kontenery ręcznie, co pomaga rozwiązać problemy z kompatybilnością Docker/docker-compose.
Problem z ładowaniem modelu
Jeśli model-service nie działa lub API zwraca “Service Unavailable”, użyj skryptu naprawczego:
sudo ./fix_model_service.sh
Ten skrypt automatycznie pobiera niezbędne pliki modelu i ponownie uruchamia kontener model-service.
Dokumentacja
Szczegółowa dokumentacja jest dostępna w katalogu docs
:
- Testowanie z noVNC - instrukcje dotyczące testowania systemu z przeglądarką i noVNC
- Migracja do mikrousług - informacje o migracji do architektury mikrousług
- Monitorowanie - instrukcje dotyczące monitorowania systemu
Struktura projektu
llm-orchestrator-min/
├── docker-compose.yml # Konfiguracja mikrousług
├── run.sh # Skrypt do standardowego uruchomienia
├── reset_and_run.sh # Skrypt do resetowania i ręcznego uruchomienia
├── stop.sh # Skrypt do zatrzymania systemu
├── monitor.sh # Skrypt do monitorowania statusu systemu
├── fix_model_service.sh # Skrypt do naprawy problemów z modelem
├── setup_novnc_test.sh # Skrypt do konfiguracji środowiska testowego
├── microservices/ # Katalog z mikrousługami
│ ├── api-gateway/ # Brama API (Traefik)
│ └── model-service/ # Usługa modelu LLM
├── models/ # Katalog na pliki modeli
├── .cache/ # Katalog cache
│ ├── pip/ # Cache pakietów pip
│ └── models/ # Cache pobranych modeli
└── docs/ # Dokumentacja
Konfiguracja
Główne parametry konfiguracyjne są dostępne w pliku docker-compose.yml
:
- MODEL_PATH: Ścieżka do plików modelu
- USE_INT8: Flaga włączająca kwantyzację INT8
- MODEL_SERVICE_PORT: Port, na którym nasłuchuje usługa modelu
Licencja
Ten projekt jest udostępniany na licencji MIT.