Files
VASTAI-STUDIO-AUDIO/ARCHITECTURE-STUDIO-AI.md
nicoboy 1cd8eb5f42 Téléverser les fichiers vers "/"
fichier recap et configuration d'images docker, de template
2026-02-23 13:24:24 +00:00

5.6 KiB

🎙️ Studio IA Multimodal — Architecture & Spécifications

Contexte du projet

Studio IA accessible à des utilisateurs novices via navigateur web. Interface unifiée pour la génération audio, image, et code, pilotée par un chatbot Mistral.


1. Architecture générale

[Utilisateur navigateur]
        ↓
[Open WebUI — port 3000]
        ↓
[Ollama — Mistral Medium]
        ↓ (Tools/Functions)
   ┌────┴────┬──────────┐
[AudioCraft] [ComfyUI] [Code]
  port 7860  port 8188

2. Pile logicielle

Couche Technologie Rôle Port
Interface Open WebUI Chat unifié, gestion users 3000
LLM Ollama + Mistral Chat + orchestration outils 11434
Audio AudioCraft (Meta) MusicGen + AudioGen 7860
Image ComfyUI Stable Diffusion / Flux.1 8188
Code Ollama + CodeLlama Génération de code 11434
Reverse proxy Caddy Routage + HTTPS 80/443

3. Image Docker de base

Nom cible : nicoboy/studio-ai:latest

Contenu de l'image (sans les modèles)

FROM nvidia/cuda:12.1.1-cudnn8-devel-ubuntu22.04

# Python 3.11
RUN add-apt-repository ppa:deadsnakes/ppa && \
    apt-get install -y python3.11 python3.11-venv python3.11-distutils

# Dépendances système
RUN apt-get install -y \
    ffmpeg libsndfile1 sox \
    git wget curl nano screen \
    nodejs npm

# pip pour Python 3.11
RUN curl -sS https://bootstrap.pypa.io/get-pip.py | python3.11

# Frameworks IA
RUN python3.11 -m pip install \
    torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

# AudioCraft
RUN python3.11 -m pip install \
    git+https://github.com/facebookresearch/audiocraft.git \
    gradio scipy soundfile

# Open WebUI
RUN python3.11 -m pip install open-webui

# Ollama
RUN curl -fsSL https://ollama.ai/install.sh | sh

Ce qui N'est PAS dans l'image (téléchargé au 1er lancement)

  • Modèles Ollama (Mistral, CodeLlama) → ~8 Go
  • Modèles AudioCraft (MusicGen, AudioGen) → ~4 Go
  • Modèles ComfyUI (SDXL, Flux.1) → ~7 Go
  • Total modèles : ~20 Go

4. Taille estimée

Élément Taille
Image Docker (frameworks seuls) ~15-20 Go
Modèles (téléchargés au lancement) ~20 Go
Données utilisateurs ~5 Go
Total disque recommandé 50-60 Go minimum

⚠️ 130 Go de disque = confortable pour tout faire tourner.


5. Template Vast.ai cible

Paramètre Valeur
Image nicoboy/studio-ai:latest
GPU RTX A4000 / RTX 4060 Ti (16 Go VRAM)
Disk 130 Go
Ports 3000, 7860, 8188, 11434
Launch mode Jupyter + SSH
PROVISIONING_SCRIPT URL Gitea → télécharge les modèles
PORTAL_CONFIG OpenWebUI:3000, AudioCraft:7860, ComfyUI:8188

6. Provisioning Script (logique au 1er lancement)

# 1. Télécharger les modèles Ollama
ollama pull mistral
ollama pull codellama

# 2. Télécharger les modèles AudioCraft
# (fait automatiquement au 1er appel Python)

# 3. Installer ComfyUI + modèles SD/Flux
git clone https://github.com/comfyanonymous/ComfyUI /root/ComfyUI
cd /root/ComfyUI && pip install -r requirements.txt
wget -P /root/ComfyUI/models/checkpoints/ [URL_MODELE_SDXL]

# 4. Lancer les services
screen -dmS ollama ollama serve
screen -dmS openwebui open-webui serve --port 3000
screen -dmS audiocraft python /root/audiocraft-api/server.py
screen -dmS comfyui python /root/ComfyUI/main.py --listen 0.0.0.0 --port 8188

7. Configuration Open WebUI (partie délicate — à faire ensemble)

⚠️ Cette section sera configurée manuellement après déploiement.

7.1 Connexion Ollama

  • URL : http://localhost:11434
  • Modèles : Mistral (chat), CodeLlama (code)

7.2 Tools à créer (Functions Open WebUI)

  • generate_audio(prompt, duration, type) → appelle AudioCraft port 7860
  • generate_image(prompt, steps, width, height) → appelle ComfyUI port 8188
  • generate_code(prompt, language) → appelle CodeLlama via Ollama

7.3 System Prompt de l'assistant

Tu es un assistant créatif expert.
Tu as accès aux outils suivants :
- generate_audio : pour créer musique et bruitages
- generate_image : pour créer des images
- generate_code : pour écrire du code

Quand un utilisateur fait une demande créative, 
tu l'aides à préciser sa demande puis tu utilises 
l'outil approprié.

7.4 Modèle JSON Open WebUI (à importer)

À générer une fois l'instance stable.


8. Étapes de construction (ordre)

  • Définir l'architecture
  • Construire l'image Docker ← Gemini
  • Pousser sur DockerHub (nicoboy/studio-ai)
  • Mettre à jour le template Vast.ai avec la nouvelle image
  • Écrire le provisioning script final
  • Configurer Open WebUI ← Claude
  • Créer les Tools AudioCraft + ComfyUI ← Claude
  • Rédiger les System Prompts ← Claude
  • Tests utilisateur

9. Commandes utiles

# Vérifier les services qui tournent
screen -ls

# Voir les logs d'un service
screen -r openwebui
screen -r audiocraft
screen -r comfyui

# Vérifier GPU
nvidia-smi

# Vérifier les modèles Ollama
ollama list

# Tester AudioCraft API
curl http://localhost:7860

10. Points d'attention pour Gemini

  1. Python 3.11 obligatoire — Open WebUI refuse Python 3.10
  2. Ne pas inclure les modèles dans l'image — trop lourds, dans le provisioning script
  3. L'image doit être sur DockerHub public pour que Vast.ai puisse la télécharger
  4. CUDA 12.1 — compatible A4000 et RTX 4060 Ti
  5. Tester le build avec docker build -t nicoboy/studio-ai . avant de pusher