ASSISTANT IA LOCAL · ARCHITECTURE IRON MAN · INTÉGRATION SOC
JARVIS est un serveur Flask local exposant une interface web holographique. Il orchestre plusieurs moteurs IA en local et en cloud, avec un pipeline audio complet (STT → LLM → DSP → TTS) et une intégration bidirectionnelle avec le dashboard SOC.
Interface web holographique v3.2 — ~17 000 lignes HTML/CSS/JS. Thème cyberpunk Iron Man avec preloader typewriter, scan lines et effets lumineux.
JARVIS s'intègre dans le SOC Dashboard en tant que moteur d'analyse IA. Il expose des routes REST qui permettent au dashboard de déclencher des analyses LLM et d'exécuter des actions de sécurité via CrowdSec sur le reverse proxy. JARVIS est optionnel — le SOC reste 100% fonctionnel sans lui.
| Méthode | Route | Usage SOC |
|---|---|---|
| GET | /api/gpu | Stats GPU → tuile RTX 5080 dans le dashboard |
| POST | /api/chat | Analyse LLM des données SOC (auto-engine 60s) |
| GET | /api/tts | Lecture vocale des alertes SOC (edge-tts) |
| GET | /api/security | Journal blocklist LLM → tuile GARDE-FOU |
| POST | /api/soc/ban-ip | Ban IP via CrowdSec sur le reverse proxy |
| POST | /api/soc/unban-ip | Lève un ban CrowdSec |
| POST | /api/soc/restart-service | Redémarre un service autorisé |
| GET | /api/soc/actions | Journal des actions proactives → tuile SOC |
Déploiement local sur machine Windows avec GPU NVIDIA. Python 3.11, Ollama, edge-tts et faster-whisper forment la colonne vertébrale. La configuration se fait via fichiers JSON — aucune variable d'environnement système requise.
scripts/ ├── jarvis.py # Serveur Flask principal (~3 000 lignes) ├── templates/ │ └── jarvis.html # Interface UI holographique (~17 000 lignes) ├── jarvis_providers.json # Providers LLM + clés API (non versionné) ├── jarvis_llm_params.json # Paramètres LLM : temp, top_p, num_ctx, num_predict └── jarvis_dsp_params.json # Paramètres DSP + moteur TTS actif
# Dépendances principales pip install flask flask-cors requests psutil # TTS — synthèse vocale pip install edge-tts pyttsx3 # STT — reconnaissance vocale pip install faster-whisper # GPU monitoring (NVIDIA) pip install pynvml # Optionnel — Piper TTS hors-ligne # Télécharger le binaire depuis github.com/rhasspy/piper
{
"active_provider": "ollama",
"providers": {
"ollama": {
"base_url": "http://localhost:11434",
"model": "[MODEL_NAME]" // ex: phi4:14b
},
"groq": {
"api_key": "[GROQ_API_KEY]",
"model": "[GROQ_MODEL]" // ex: llama-3.3-70b-versatile
},
"openrouter": {
"api_key": "[OPENROUTER_API_KEY]",
"model": "[OPENROUTER_MODEL]" // ex: anthropic/claude-3.5-sonnet
}
}
}
{
"temperature": 0.7, // créativité (0.1 précis → 1.0 créatif)
"top_p": 0.9, // nucleus sampling
"num_ctx": 8192, // taille contexte (tokens)
"num_predict": 512, // longueur max réponse
"preset": "ÉQUILIBRÉ" // RAPIDE | ÉQUILIBRÉ | QUALITÉ
}
# Installer les modèles Ollama avant de démarrer ollama pull [MODEL_NAME] ollama list # vérifier les modèles disponibles # Lancer JARVIS cd scripts/ python jarvis.py # → Serveur Flask démarré sur http://localhost:5000 # → Ouvrir le navigateur sur http://localhost:5000 # Arrêt propre (Windows) # stop_jarvis.bat ou Ctrl+C dans le terminal # Vérifier que le port est libre avant relance netstat -ano | findstr :5000
# Dans le SOC Dashboard (monitoring-index.html) # Renseigner l'URL JARVIS dans les paramètres du dashboard : JARVIS_URL = "http://[JARVIS_HOST]:5000" # Routes exposées par JARVIS pour le SOC : GET /api/gpu → stats GPU temps réel POST /api/chat → analyse LLM narrative GET /api/tts → lecture vocale alerte GET /api/security → journal garde-fou LLM POST /api/soc/ban-ip → ban via CrowdSec POST /api/soc/unban-ip → lever un ban POST /api/soc/restart-service → redémarrer un service # JARVIS est optionnel — le SOC fonctionne sans lui