Intermédiaire 8 minLM Studio

Transformer LM Studio en serveur API

LM Studio n'est pas qu'un chat graphique. Son onglet Developer expose une API OpenAI-compatible qui permet de brancher n'importe quel outil — Continue.dev, LangChain, vos scripts internes — sur un modèle local. Ce guide montre comment transformer votre poste LM Studio en serveur LLM privé pour l'équipe.

Par Mohamed Meguedmi·Màj 2026-03-30·Testé sur Windows, macOS, Linux

#Objectif de ce guide

À la fin, vous aurez un endpoint http://localhost:1234/v1 (ou accessible depuis votre LAN) qui parle le protocole OpenAI. N'importe quel SDK (openai-python, LangChain, llamaindex, Continue) pourra taper dessus sans une ligne de code changée.

#1. Activer le serveur

  1. 01
    Ouvrez l'onglet Developer
    Icône en forme de terminal dans la sidebar gauche. Si elle n'apparaît pas, basculez l'interface en mode Developer via Settings → UI Mode.
  2. 02
    Sélectionnez un modèle
    Menu déroulant en haut. Le modèle doit être déjà téléchargé (voir onglet My Models).
  3. 03
    Ajustez les réglages
    Context Length, GPU offload, Flash Attention si disponible. Réglages par défaut OK pour démarrer.
  4. 04
    Cliquez Start Server
    Le serveur écoute sur localhost:1234 par défaut. Le port est configurable juste à côté.
Logs en direct
Dans la même vue, un onglet Server Logs montre chaque requête entrante. Très utile pour debugger une intégration.

#2. Tester avec curl

Liste des modèles
curl http://localhost:1234/v1/models
Complétion chat
curl http://localhost:1234/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "local-model",
    "messages": [
      {"role":"system","content":"Tu es concis."},
      {"role":"user","content":"Capitale du Portugal ?"}
    ],
    "temperature": 0.2
  }'

Vous devriez recevoir un JSON standard OpenAI : choices[0].message.content contient la réponse.

#3. Appeler depuis Python

Via le SDK openai
from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:1234/v1",
    api_key="lm-studio",  # n'importe quelle chaîne
)

resp = client.chat.completions.create(
    model="local-model",
    messages=[
        {"role": "system", "content": "Réponds en 1 phrase."},
        {"role": "user",   "content": "Qu'est-ce qu'un LLM ?"},
    ],
    temperature=0.3,
    stream=True,
)

for chunk in resp:
    delta = chunk.choices[0].delta.content or ""
    print(delta, end="", flush=True)
i
Streaming gratuit
stream=True fonctionne exactement comme chez OpenAI. Aucun changement côté client pour afficher les tokens en direct.

#4. Plusieurs modèles en parallèle

LM Studio 0.3+ peut charger plusieurs modèles simultanément. Chacun répond via son propre nom (qu'on sélectionne via le champ model de la requête).

Requête multi-modèle
curl http://localhost:1234/v1/chat/completions \
  -d '{"model":"mistral-7b-instruct","messages":[...]}'

curl http://localhost:1234/v1/chat/completions \
  -d '{"model":"qwen2.5-coder-7b","messages":[...]}'
!
Attention à la VRAM
Deux modèles 7B chargés simultanément consomment ~9-10 Go de VRAM. Surveillez via l'onglet Hardware de LM Studio.

#5. Exposer sur le réseau

Dans les settings du serveur, le champ Host accepte 0.0.0.0 pour écouter sur toutes les interfaces réseau. Depuis un autre poste du LAN :

Client distant
curl http://192.168.1.42:1234/v1/models
!
Zéro auth native
LM Studio n'a pas d'authentification. Tout qui atteint le port peut utiliser votre modèle. Mettez Caddy ou Nginx avec basic auth devant, ou restreignez au LAN via firewall.

#6. Performance et tuning

GPU offload max
Slider à fond à droite tant que la VRAM suit. Un 7B Q4 doit tenir entier en VRAM.
Flash Attention
Activez si disponible (coche dans les réglages du modèle). +15 à 30 % de throughput, moins de VRAM consommée par le contexte.
Context Length
Mettre la valeur dont vous avez besoin, pas plus. Un contexte 32k coûte beaucoup plus de VRAM qu'un 8k.
n_batch
Visible en mode Developer. 512 par défaut. 1024 accélère les longs prompts. Au-delà, gains marginaux.

#Limites et alternatives

Pas de cluster
LM Studio tourne sur un poste. Pour répartir la charge sur plusieurs machines, vLLM ou un load balancer devant plusieurs instances.
Pas de queue
Si 10 requêtes arrivent en même temps, elles sont traitées en séquence. Pour du throughput, vLLM est 5-10x plus rapide en batching.
Licence commerciale
Usage entreprise = licence payante. Ollama ou vLLM restent gratuits.
Mises à jour auto
Peuvent casser un workflow en prod. En environnement contrôlé, désactivez-les via Settings.
Ce guide vous a aidé ?

Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.