- docs/ARCHITECTURE.md (7 diagrame Mermaid) + architecture.html + diagrame originale (offer_diagram_1..7.png) - artefacte_lot1/imagini_docker: imagini pre-construite pt toate cele 13 module (la zi) - documentatie: Contract de furnizare nr.19 - optimizări deploy.sh/seed (MODELS_DIR, fix download python3); .gitignore (modele/.env/PV-uri excluse) |
||
|---|---|---|
| .. | ||
| seed | ||
| .env.example | ||
| deploy.sh | ||
| docker-compose.yml | ||
| lib.sh | ||
| README.md | ||
| run_tests.py | ||
| TESTING.md | ||
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 composev2 - 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
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)
- (o singură dată) driver NVIDIA ≥535 + reboot —
sudo ubuntu-drivers install(nu se automatizează, cere reboot). git clone <repo> && cd .../ai_platform/local_gpu_stack./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.
- HOST_IP se auto-detectează și se scrie în
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 containeredidiAI-* - 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:
.envcu 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 dinmodules/*/deploy/—deploy.shle orchestrează pe toate sub proiectullocal_gpu_stack.