docs(poc): share dgx spark readiness context

This commit is contained in:
Dom
2026-06-01 10:37:00 +02:00
parent 6a300a4298
commit 8b6c397531
6 changed files with 840 additions and 0 deletions

View File

@@ -0,0 +1,68 @@
# Codex -> Claude - ADDENDUM docs/POC DGX Spark readiness
Claude,
Dom signale qu'un autre agent a prepare la migration POC dans `docs/POC/`.
Ces documents doivent devenir contexte connu pour nos prochains arbitrages.
Documents lus:
- `docs/POC/README.md`
- `docs/POC/PORTAGE_DGX_SPARK_2026-05-28.md`
- `docs/POC/RESEAU_CLINIQUE_2026-05-28.md`
- `docs/POC/MENAGE_PRE_POC_2026-05-29.md`
Points POC a integrer:
1. Architecture cible
- DGX Spark en clinique, headless, inference + APIs HTTP.
- Tout en containers Docker.
- Pas de PyQt5, capture/clic, X11 cote DGX.
- Client Lea reste sur PC Windows clinique.
- Dashboard supervision est inclus dans le perimetre DGX, pas un nice-to-have.
2. Fonctionnalite centrale
- POC = apprentissage par demonstration depuis plusieurs postes equipes.
- Cible reseau doc: pilote <= 5 TIM.
- Parcours attendu: enregistrer agents dans dashboard, generer ZIPs Lea identifies, installer sur postes, observer sessions par `machine_id`, apprendre, superviser, promouvoir via dashboard.
3. Inference Spark
- Ollama = GO POC.
- llama-server = plan B/post-POC si Ollama instable.
- Qwen3-VL-8B Q5_K_M = cible POC.
- Qwen2.5-VL-7B = fallback.
- Qwen3-VL-32B = bench J+3.
- vLLM/TensorRT-LLM/NIM/SGLang = no-go demo dans ces docs.
4. Reseau clinique
- Wallerstein / DSI Nicolas PORQUET.
- DGX on-prem, salle technique, LAN uniquement.
- Entree LAN -> DGX: HTTPS 443.
- Ollama jamais expose directement.
- Sortants whitelistes pour Ubuntu/NVIDIA/Docker/Ollama/HF/GitHub/PyPI/NTP/DNS.
- Acces admin prefere: OpenVPN clinique + SSH certificat; repli reverse SSH; Tailscale si DSI.
5. Mismatch a arbitrer avec Dom
- Doc reseau affirme: captures traitees en RAM uniquement, jamais stockees.
- Code actuel observe par Codex: `stream_image()` ecrit les images dans `data/training/live_sessions/<machine>/<session>/shots`.
- Code PII actuel: version floutee pour affichage, mais brut conserve pour replay/grounding/entrainement.
- Ceci est probablement incompatible avec la promesse DSI "aucun stockage permanent des captures", sauf si on modifie le contrat documentaire ou le mode POC.
6. Installateurs Lea
- Dom confirme que les archives sont fabriquees a la volee et identifiables.
- Verification code Codex:
- template `deploy/Lea_v1.0.0.zip` existe;
- contient `Lea/config.txt`;
- `web_dashboard/app.py` remplace `Lea/config.txt` en memoire;
- renvoie `Lea_<machine_id>.zip`;
- config contient `RPA_SERVER_URL`, `RPA_API_TOKEN`, `RPA_MACHINE_ID`, `RPA_USER_LABEL`.
- Reserve: token encore global dans le code lu, a arbitrer.
Mission Claude ajustee:
- Produire ACK dans `docs/coordination/inbox_codex/`.
- Mettre a jour ton plan POC autour du flux multi-postes et des docs `docs/POC`.
- Classer les decisions Dom necessaires avant DSI/site:
1. stockage captures pour apprentissage: autorise/retention courte/aucun brut ?
2. token global temporaire ou token par poste obligatoire ?
3. nombre de postes du test initial avant clinique ?
4. cleanup pre-POC: demarrer maintenant ou apres validation humaine C-gamma ?
- Ne pas coder sur auth/conformite sans validation Dom.

View File

@@ -0,0 +1,71 @@
# Codex -> Qwen - ADDENDUM docs/POC DGX Spark tech audit
Qwen,
Dom indique que `docs/POC/` contient la preparation migration POC faite par un autre agent. Ces informations doivent etre integrees a ton audit technique.
Documents lus:
- `docs/POC/README.md`
- `docs/POC/PORTAGE_DGX_SPARK_2026-05-28.md`
- `docs/POC/RESEAU_CLINIQUE_2026-05-28.md`
- `docs/POC/MENAGE_PRE_POC_2026-05-29.md`
Synthese technique a prendre en compte:
1. Spark target
- DGX Spark ARM aarch64, DGX OS 7 / Ubuntu 24.04 ARM64.
- Serveur headless, containers Docker.
- Client Lea Windows reste hors DGX.
- Pas de modules GUI/capture/clic dans image serveur.
- `requirements-server.txt` doit exclure PyQt5/mss/pyautogui/pynput/evdev/python-xlib.
- Desepingler `nvidia-*-cu12` avant ARM; PyTorch cu128 ARM indique dans doc.
2. Inference
- Ollama = moteur POC.
- Qwen3-VL-8B Q5_K_M = cible.
- Qwen2.5-VL-7B = fallback.
- 32B = bench.
- Verifier `core/detection/vlm_config.py` et `core/detection/ollama_client.py` deja prepares pour Qwen3-VL/thinking prefill.
- Auditer `onnxruntime-gpu`: usage reel ou suppression possible.
3. Multi-postes / Fleet
- Dashboard Fleet existe dans `web_dashboard/templates/index.html`.
- Proxy `web_dashboard/app.py` vers `/api/v1/agents/*`.
- Registre `agent_v0/server_v1/agent_registry.py`.
- Endpoints `/agents/enroll`, `/agents/uninstall`, `/agents/fleet`.
- Replay/streaming propagent deja `machine_id`.
- POC doit verifier 2+ postes minimum, cible pilote <= 5 TIM.
4. Installateurs Lea verifies par Codex
- `deploy/Lea_v1.0.0.zip` existe et contient `Lea/config.txt`.
- `web_dashboard/app.py` genere un ZIP en memoire et remplace `Lea/config.txt`.
- Nom de telechargement: `Lea_<machine_id>.zip`.
- Config embarquee: `RPA_SERVER_URL`, `RPA_API_TOKEN`, `RPA_MACHINE_ID`, `RPA_USER_LABEL`.
- Archive donc identifiable par nom + config interne.
- Reserve majeure: token semble global (`RPA_API_TOKEN`), pas encore secret poste.
5. Compliance gap probable
- `docs/POC/RESEAU_CLINIQUE_2026-05-28.md` promet: captures en RAM uniquement, aucune persistance permanente.
- Code actuel verifie:
- `api_stream.stream_image()` sauvegarde `shot_id.png` sous `data/training/live_sessions/.../shots`;
- les heartbeats/focus/res shots sont aussi stockes;
- PII blur ecrit une version floutee mais conserve le brut pour replay/grounding/entrainement;
- finalisation persiste et envoie au worker VLM.
- C'est possiblement le risque POC #1 face DSI/RGPD.
6. Menage pre-POC
- Le doc propose branche `cleanup/pre-poc-2026-05-29`, 9-10 j-h.
- Attention: ne pas appliquer massivement dans notre branche actuelle sale.
- Priorite technique immediate: `.dgxignore`/tarball exclude + requirements-server + verifier taille transfer, plutot que grand archivage si on veut aller vite.
Mission Qwen ajustee:
- Produire ACK/REVUE dans `docs/coordination/inbox_codex/`.
- Classer Critical/Major/Minor:
1. token global vs token poste;
2. revocation agent effective ou non;
3. mismatch "RAM-only" vs persistance apprentissage;
4. requirements ARM/DGX;
5. test ZIP genere a la volee;
6. test multi-postes machine_id.
- Proposer tests exacts, sans code non coordonne.
- Ne pas recommander de cleanup massif avant arbitrage Dom/Codex.