|
| 1 | +# Testowanie systemu LLM z przeglądarką i noVNC |
| 2 | + |
| 3 | +Ten dokument opisuje procedurę testowania systemu LLM z wykorzystaniem przeglądarki internetowej i noVNC. Pozwala to na wygodne testowanie API i generowanie tekstu bez konieczności instalowania dodatkowych narzędzi na komputerze lokalnym. |
| 4 | + |
| 5 | +## Wymagania |
| 6 | + |
| 7 | +- Docker |
| 8 | +- Dostęp do internetu (do pobierania obrazów Docker) |
| 9 | +- Minimum 4GB RAM dla kontenera modelu LLM |
| 10 | + |
| 11 | +## Szybki start |
| 12 | + |
| 13 | +System można uruchomić na trzy różne sposoby, w zależności od potrzeb: |
| 14 | + |
| 15 | +### 1. Standardowe uruchomienie (zalecane) |
| 16 | + |
| 17 | +```bash |
| 18 | +./run.sh |
| 19 | +``` |
| 20 | + |
| 21 | +Ten skrypt automatycznie: |
| 22 | +- Sprawdza wymagania systemowe (Docker, docker-compose) |
| 23 | +- Wykonuje migrację do mikrousług, jeśli nie została jeszcze wykonana |
| 24 | +- Tworzy sieć Docker dla komunikacji między kontenerami |
| 25 | +- Buduje i uruchamia mikrousługi (model-service i api-gateway) |
| 26 | +- Konfiguruje środowisko testowe z noVNC i przeglądarką Firefox |
| 27 | +- Przeprowadza testy API, aby upewnić się, że system działa poprawnie |
| 28 | +- Wyświetla instrukcje dla użytkownika |
| 29 | + |
| 30 | +### 2. Resetowanie i ręczne uruchomienie (w przypadku problemów) |
| 31 | + |
| 32 | +```bash |
| 33 | +./reset_and_run.sh |
| 34 | +``` |
| 35 | + |
| 36 | +Ten skrypt jest przydatny, gdy występują problemy z uruchomieniem standardowym: |
| 37 | +- Całkowicie resetuje środowisko Docker (usuwa wszystkie kontenery, obrazy i sieci związane z projektem) |
| 38 | +- Ręcznie buduje i uruchamia kontenery, pomijając docker-compose |
| 39 | +- Jest bardziej niezawodny w przypadku problemów z kompatybilnością Docker/docker-compose |
| 40 | + |
| 41 | +### 3. Konfiguracja tylko środowiska testowego |
| 42 | + |
| 43 | +```bash |
| 44 | +./setup_novnc_test.sh |
| 45 | +``` |
| 46 | + |
| 47 | +Ten skrypt konfiguruje tylko środowisko testowe z noVNC i przeglądarką, zakładając że mikrousługi są już uruchomione. |
| 48 | + |
| 49 | +## Zatrzymanie systemu |
| 50 | + |
| 51 | +Aby zatrzymać i usunąć wszystkie kontenery: |
| 52 | + |
| 53 | +```bash |
| 54 | +./stop.sh |
| 55 | +``` |
| 56 | + |
| 57 | +Ten skrypt: |
| 58 | +- Zatrzymuje i usuwa wszystkie kontenery mikrousług |
| 59 | +- Zatrzymuje i usuwa kontenery środowiska testowego (noVNC, przeglądarka) |
| 60 | +- Usuwa sieć Docker |
| 61 | +- Pyta użytkownika, czy chce usunąć katalog cache i wolumeny |
| 62 | + |
| 63 | +## Dostęp do środowiska testowego |
| 64 | + |
| 65 | +Po uruchomieniu systemu: |
| 66 | + |
| 67 | +1. Otwórz przeglądarkę i przejdź do adresu: |
| 68 | + ``` |
| 69 | + http://localhost:6080 |
| 70 | + ``` |
| 71 | + |
| 72 | +2. Zaloguj się do noVNC używając hasła: |
| 73 | + ``` |
| 74 | + password |
| 75 | + ``` |
| 76 | + |
| 77 | +3. W przeglądarce Firefox wewnątrz noVNC, otwórz plik: |
| 78 | + ``` |
| 79 | + file:///config/test_llm.html |
| 80 | + ``` |
| 81 | + |
| 82 | +4. Możesz teraz testować API LLM: |
| 83 | + - Wprowadź prompt w polu tekstowym |
| 84 | + - Dostosuj parametry (temperatura, maksymalna długość) |
| 85 | + - Kliknij "Generuj tekst" |
| 86 | + |
| 87 | +## Testowanie API bezpośrednio |
| 88 | + |
| 89 | +Możesz również testować API bezpośrednio: |
| 90 | + |
| 91 | +1. Sprawdzenie statusu API: |
| 92 | + ```bash |
| 93 | + curl http://localhost/api/health |
| 94 | + ``` |
| 95 | + |
| 96 | +2. Generowanie tekstu: |
| 97 | + ```bash |
| 98 | + curl -X POST http://localhost/api/generate \ |
| 99 | + -H "Content-Type: application/json" \ |
| 100 | + -d '{"prompt":"Opowiedz mi krótką historię o kocie.", "max_length":256, "temperature":0.7}' |
| 101 | + ``` |
| 102 | + |
| 103 | +## Monitorowanie |
| 104 | + |
| 105 | +Dashboard Traefik jest dostępny pod adresem: |
| 106 | +``` |
| 107 | +http://localhost:8080 |
| 108 | +``` |
| 109 | + |
| 110 | +Pozwala on na monitorowanie statusu mikrousług i ruchu sieciowego. |
| 111 | + |
| 112 | +## Rozwiązywanie problemów |
| 113 | + |
| 114 | +### Problem z uruchomieniem kontenerów |
| 115 | + |
| 116 | +Jeśli występują problemy z uruchomieniem kontenerów za pomocą `run.sh`, spróbuj użyć skryptu `reset_and_run.sh`, który całkowicie resetuje środowisko Docker i uruchamia kontenery ręcznie. |
| 117 | + |
| 118 | +### Błąd "ContainerConfig" |
| 119 | + |
| 120 | +Jeśli pojawia się błąd `KeyError: 'ContainerConfig'`, jest to problem z kompatybilnością między wersjami Docker i docker-compose. Użyj skryptu `reset_and_run.sh`, który omija ten problem. |
| 121 | + |
| 122 | +### API zwraca "Service Unavailable" |
| 123 | + |
| 124 | +Po uruchomieniu systemu, model LLM potrzebuje czasu na załadowanie (zwykle kilka minut). W tym czasie API może zwracać "Service Unavailable". Poczekaj kilka minut i spróbuj ponownie. |
| 125 | + |
| 126 | +### Problemy z pamięcią |
| 127 | + |
| 128 | +Model LLM wymaga minimum 4GB RAM. Jeśli kontener model-service ulega awarii, sprawdź dostępną pamięć i w razie potrzeby zwiększ limit w pliku `docker-compose.yml`. |
| 129 | + |
| 130 | +## Struktura katalogów |
| 131 | + |
| 132 | +``` |
| 133 | +llm-orchestrator-min/ |
| 134 | +├── docker-compose.yml # Konfiguracja mikrousług |
| 135 | +├── run.sh # Skrypt do standardowego uruchomienia |
| 136 | +├── reset_and_run.sh # Skrypt do resetowania i ręcznego uruchomienia |
| 137 | +├── stop.sh # Skrypt do zatrzymania systemu |
| 138 | +├── setup_novnc_test.sh # Skrypt do konfiguracji środowiska testowego |
| 139 | +├── microservices/ # Katalog z mikrousługami |
| 140 | +│ ├── api-gateway/ # Brama API (Traefik) |
| 141 | +│ └── model-service/ # Usługa modelu LLM |
| 142 | +├── models/ # Katalog na pliki modeli |
| 143 | +└── .cache/ # Katalog cache |
| 144 | + ├── pip/ # Cache pakietów pip |
| 145 | + └── models/ # Cache pobranych modeli |
| 146 | +``` |
| 147 | + |
| 148 | +## Architektura systemu |
| 149 | + |
| 150 | +System składa się z następujących komponentów: |
| 151 | + |
| 152 | +1. **model-service**: Mikrousługa odpowiedzialna za ładowanie modelu LLM i generowanie tekstu |
| 153 | +2. **api-gateway**: Brama API (Traefik) odpowiedzialna za routing żądań |
| 154 | +3. **noVNC**: Serwer VNC dostępny przez przeglądarkę |
| 155 | +4. **browser**: Kontener z przeglądarką Firefox |
| 156 | + |
| 157 | +Komunikacja między komponentami odbywa się przez sieć Docker `llm-network`. |
| 158 | + |
| 159 | +## Konfiguracja |
| 160 | + |
| 161 | +Główne parametry konfiguracyjne: |
| 162 | + |
| 163 | +- **MODEL_PATH**: Ścieżka do plików modelu (domyślnie: `/app/models/tinyllama`) |
| 164 | +- **USE_INT8**: Flaga włączająca kwantyzację INT8 (domyślnie: `true`) |
| 165 | +- **MODEL_SERVICE_PORT**: Port, na którym nasłuchuje usługa modelu (domyślnie: `5000`) |
0 commit comments