LOT 1 - Optimizare script build -Instalare mono comanda

This commit is contained in:
Dezvoltari Evotech 2026-06-27 06:42:02 -07:00
parent 5380c3fc63
commit 42ff22bf85
127 changed files with 16163 additions and 532 deletions

View file

@ -0,0 +1,74 @@
# DiDi LOT 1 — Local GPU stack (deploy progresiv)
Deploy „cărămidă cu cărămidă" al întregii platforme pe un host cu GPU.
Pentru fiecare componentă: **build/pull + download → seed (dacă e cazul) →
TEST funcțional → doar dacă testul trece corect → următoarea**. Idempotent,
se oprește la primul test picat.
## Cerințe (verificate de preflight, nu se instalează automat)
- Docker Engine 24+ cu plugin `docker compose` v2
- NVIDIA driver ≥535 + `nvidia-container-toolkit` (runtime configurat în Docker)
- ≥1 GPU (proiectat pe 2× H200; GPU 0 = LLM+Whisper, GPU 1 = BusterX+bge×2)
- ~100 GB liberi pe `/` (toate modelele ≈ 94 GB)
## Modele — o singură zonă locală
Toate modelele stau în **`ai_platform/models/`** (format HF cache, un folder per model),
servite **offline** de acolo (fără rețea la runtime). `MODELS_DIR` în `.env` (auto = acest folder).
Ce lipsește se descarcă o singură dată în el (`deploy.sh` pasul DOWNLOAD). NU se comite în git.
| Folder | Model | Folosit de |
|---|---|---|
| `models--Qwen--Qwen3.5-35B-A3B` | LLM (67G) | llm (vLLM) |
| `models--l8cv--BusterX_plusplus` | deepfake (16G, Qwen2.5-VL intern) | video (vLLM) |
| `models--BAAI--bge-m3` | embeddings | embeddings (vLLM) |
| `models--BAAI--bge-reranker-v2-m3` | reranker | rerank (vLLM) |
| `models--mobiuslabsgmbh--faster-whisper-large-v3-turbo` | STT | audio |
| `models--urchade--gliner_multi-v2.1` + `models--microsoft--mdeberta-v3-base` | NER + backbone | extractors |
Copiezi `ai_platform/models/` pe altă mașină → zero download la deploy.
## Utilizare
```bash
cd ai_platform/local_gpu_stack
./deploy.sh # tot, de la preflight la dashboard
./deploy.sh --from web # reia de la cărămida 'web' (sare peste cele dinainte)
./deploy.sh --only llm # rulează o singură cărămidă (presupune deps deja up)
./deploy.sh --install-deps # instalează Docker + nvidia-container-toolkit (sudo), apoi continuă
```
`.env` se creează automat din `.env.example` la prima rulare.
### Mașină nouă (VM „chioară" cu GPU)
1. (o singură dată) driver NVIDIA ≥535 + reboot — `sudo ubuntu-drivers install` (nu se automatizează, cere reboot).
2. `git clone <repo> && cd .../ai_platform/local_gpu_stack`
3. `./deploy.sh --install-deps` → instalează Docker+toolkit, apoi:
- **HOST_IP** se auto-detectează și se scrie în `.env`
- **BusterX** se descarcă automat din HF dacă nu e pe disc (`BUSTER_HF_CACHE`)
- Qwen/bge se descarcă (cu progres), totul se ridică cărămidă cu cărămidă cu test la fiecare.
> Singurul pas care NU e o comandă: driverul NVIDIA (reboot). Restul e `./deploy.sh`.
Cărămizi, în ordine: `embeddings · rerank · llm · extractors · audio · video · forensic · web · catalog · gateway · brain · dashboard`.
La final: dashboard pe `http://<HOST_IP>:51300/admin-ai/` (staging mode, fără login).
## Ce automatizează (fixurile care înainte erau manuale)
- rețea unică `didi-network`; plasare GPU 0/1; nume containere `didiAI-*`
- base-URL vLLM **fără** `/v1` (codul îl adaugă) pentru llm/embeddings/video
- YOLO scrie modelul în `/tmp` (cwd e read-only la non-root)
- gateway LLM injectează `enable_thinking:false` → JSON curat din Qwen3.5 (sentiment/OCR/semantic/brain)
- SearXNG fără proxy outbound, ca serviciu compose
- brain: aliniere parolă postgres, creare **token atomic** (auto, salvat în `.env`), **seed taxonomie** (79 tag-uri)
- dashboard: `.env` cu staging + override-uri health; **seed catalog** (9 intrări)
## Fișiere
| Fișier | Rol |
|---|---|
| `deploy.sh` | orchestratorul progresiv gated |
| `lib.sh` | logging, `wait_health`, `gate`, shim docker (merge și prin `sg docker`) |
| `docker-compose.yml` | stack-ul GPU + non-GPU + searxng |
| `.env.example` | configurația (host, porturi, parole, token) |
| `seed/seed_catalog.sh` | populează catalogul DB al dashboard-ului (idempotent) |
| `seed/seed_brain.sh` | token atomic + taxonomie + env brain |
| `TESTING.md` | comenzi de testare per componentă + smoke-test |
> Brain rulează din `modules/didi_brain/infra/docker-compose.yml`; dashboard și gateway
> din `modules/*/deploy/``deploy.sh` le orchestrează pe toate sub proiectul `local_gpu_stack`.