@@ -13,6 +13,12 @@ echo -e "- Prosty model LLM działający na CPU (do 2B parametrów)"
1313echo -e " - Przeglądarka dostępna przez noVNC"
1414echo -e " - Brak menedżerów haseł, pipelines i sterowania głosowego"
1515echo -e " - Zoptymalizowane cacheowanie paczek"
16+ echo -e " - Kwantyzacja int8 dla mniejszego zużycia pamięci"
17+ echo -e " - Limity zasobów dla kontenerów"
18+
19+ # Włączenie BuildKit dla szybszego budowania
20+ export DOCKER_BUILDKIT=1
21+ export COMPOSE_DOCKER_CLI_BUILD=1
1622
1723# Sprawdzenie czy Docker jest zainstalowany
1824if ! command -v docker & > /dev/null; then
4147 echo -e " ${GREEN} Wolumen pip-cache już istnieje.${NC} "
4248fi
4349
50+ # Sprawdzenie dostępnej pamięci
51+ MEM_TOTAL=$( free -g | awk ' /^Mem:/{print $2}' )
52+ echo -e " ${YELLOW} Dostępna pamięć: ${MEM_TOTAL} GB${NC} "
53+
54+ if [ " $MEM_TOTAL " -lt 4 ]; then
55+ echo -e " ${RED} Uwaga: Dostępna pamięć poniżej 4GB. Wydajność może być ograniczona.${NC} "
56+ # Zmniejszamy limity pamięci dla kontenerów
57+ sed -i ' s/memory: 2G/memory: 1G/g' docker-compose.min.yml
58+ sed -i ' s/memory: 1G/memory: 512M/g' docker-compose.min.yml
59+ sed -i ' s/memory: 256M/memory: 128M/g' docker-compose.min.yml
60+ echo -e " ${YELLOW} Limity pamięci zostały automatycznie zmniejszone.${NC} "
61+ fi
62+
4463# Zatrzymanie istniejących kontenerów, jeśli istnieją
4564echo -e " ${YELLOW} Zatrzymywanie istniejących kontenerów, jeśli istnieją...${NC} "
4665docker-compose -f docker-compose.min.yml down 2> /dev/null
4766
67+ # Czyszczenie nieużywanych obrazów i wolumenów dla oszczędności miejsca
68+ echo -e " ${YELLOW} Czyszczenie nieużywanych zasobów Docker...${NC} "
69+ docker system prune -f --volumes 2> /dev/null
70+
4871# Budowanie i uruchamianie kontenerów
4972echo -e " ${GREEN} Budowanie i uruchamianie kontenerów...${NC} "
5073echo -e " ${YELLOW} Pierwsze uruchomienie może potrwać dłużej, kolejne będą szybsze dzięki cache.${NC} "
@@ -85,7 +108,28 @@ open_browser() {
85108
86109# Czekanie na uruchomienie usług
87110echo -e " ${YELLOW} Czekanie na uruchomienie usług...${NC} "
88- sleep 10
111+ echo -e " ${YELLOW} Sprawdzanie statusu API LLM...${NC} "
112+
113+ # Sprawdzanie, czy API jest gotowe
114+ MAX_RETRIES=30
115+ RETRY_COUNT=0
116+ API_READY=false
117+
118+ while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do
119+ if curl -s http://localhost:5000/api/health | grep -q " status.*ok" ; then
120+ API_READY=true
121+ break
122+ fi
123+ echo -n " ."
124+ RETRY_COUNT=$(( RETRY_COUNT+ 1 ))
125+ sleep 2
126+ done
127+
128+ if [ " $API_READY " = true ]; then
129+ echo -e " \n${GREEN} API LLM jest gotowe!${NC} "
130+ else
131+ echo -e " \n${YELLOW} Upłynął limit czasu oczekiwania na API LLM. Kontynuowanie mimo to...${NC} "
132+ fi
89133
90134# Otwieranie noVNC w przeglądarce
91135echo -e " ${GREEN} Otwieranie noVNC w przeglądarce...${NC} "
@@ -94,6 +138,12 @@ open_browser "http://localhost:8080/vnc.html?autoconnect=true&password=secret"
94138echo -e " ${GREEN} === coBoarding - Minimalna Wersja uruchomiona ===${NC} "
95139echo -e " noVNC dostępny pod adresem: http://localhost:8080/vnc.html?autoconnect=true&password=secret"
96140echo -e " API LLM dostępne pod adresem: http://localhost:5000"
141+
142+ # Wyświetlanie informacji o zużyciu zasobów
143+ echo -e " ${YELLOW} Informacje o zużyciu zasobów:${NC} "
144+ docker stats --no-stream
145+
97146echo -e " ${YELLOW} Aby zatrzymać, użyj: docker-compose -f docker-compose.min.yml down${NC} "
98147echo -e " ${GREEN} Informacja o cache:${NC} Paczki Pythona są przechowywane w wolumenie Docker 'coboarding-pip-cache'"
99148echo -e " Dzięki temu kolejne uruchomienia będą znacznie szybsze."
149+ echo -e " ${GREEN} Optymalizacje:${NC} Kwantyzacja int8, limity pamięci, BuildKit, cacheowanie paczek"
0 commit comments