Transformer LM Studio en serveur API OpenAI (2026)
Dans LM Studio, ouvrez l'onglet Developer et activez l'interrupteur Start server : le serveur écoute sur le port 1234 et expose des endpoints compatibles OpenAI (/v1/chat/completions, /v1/responses, /v1/embeddings, /v1/models). Tout client OpenAI fonctionne en changeant simplement l'adresse de base. Par défaut, il n'exige aucune authentification et n'écoute que sur localhost : les jetons d'API et l'accès réseau se règlent dans Server Settings.
LM Studio n'est pas qu'une interface de chat : son serveur local remplace l'API d'OpenAI pour vos scripts, vos éditeurs de code et vos agents, sans envoyer une ligne de texte à l'extérieur. Ce guide couvre l'activation, chaque réglage du serveur, l'accès depuis le réseau avec authentification, le chargement à la demande des modèles et les limites réelles d'un poste unique, en tenant compte des changements de la version 0.4.
#Ce que vous obtenez
À la fin de ce guide, vous disposez d'une adresse http://localhost:1234/v1 que n'importe quel SDK OpenAI (Python, JavaScript, C#), LangChain ou un outil de code comme Cline ou Continue peut utiliser à la place de l'API d'OpenAI. Le serveur propose aussi une API native sous /api/v1 (chat à état, chargement et téléchargement de modèles) et des endpoints compatibles Anthropic. Tout reste sur votre machine : le modèle, les requêtes et les réponses ne quittent pas votre poste, tant que vous ne l'exposez pas vous-même sur le réseau.
#1. Démarrer le serveur
Ton ChatGPT privé et gratuit sur ta machine en 1 heure — LM Studio, Ollama, Open WebUI, tes documents, sans cloud.
- Espace en ligne à vie
- PDF + fichiers
- Mises à jour à vie
- 01Ouvrez l'onglet DeveloperDans LM Studio, l'onglet Developer regroupe le serveur, ses journaux et ses réglages. Le modèle à servir doit être téléchargé au préalable.
- 02Activez Start serverBasculez l'interrupteur Start server : le serveur démarre sur le port indiqué dans Server Settings, 1234 dans les exemples de la documentation.
- 03Ou démarrez en ligne de commandeDepuis un terminal, la commande lms server start lance le même serveur, sans ouvrir l'interface.
- 04Vérifiez la liste des modèlesInterrogez /v1/models pour confirmer que le serveur répond et voir les identifiants de modèles à utiliser dans vos requêtes.
#2. Les réglages du serveur, un par un
Les réglages se trouvent dans Developer, Server Settings. Ils déterminent qui peut appeler le serveur et ce que les clients peuvent lui faire faire. La plupart des problèmes d'intégration viennent d'un de ces interrupteurs, le plus souvent celui du réseau ou de CORS.
| Réglage | Rôle | Recommandation |
|---|---|---|
| Server Port | Port d'écoute du serveur (1234 dans la documentation) | Changez-le si le port est déjà pris |
| Require Authentication | Exige un jeton d'API valide dans l'en-tête Authorization | Activez-le dès que le serveur sort de localhost |
| Serve on Local Network | Rend le serveur accessible aux autres appareils du réseau local | Désactivé par défaut ; à combiner avec l'authentification |
| Allow per-request MCPs | Autorise les clients à utiliser des serveurs MCP distants éphémères | Laissez désactivé sauf besoin précis |
| Allow calling servers from mcp.json | Autorise les clients à utiliser les serveurs MCP définis dans LM Studio | Exige l'authentification ; risqué si un MCP accède à vos fichiers |
| Enable CORS | Autorise les applications web d'autres origines | Seulement pour une application web ou certaines extensions |
| Just in Time Model Loading | Charge les modèles à la demande, au moment de la requête | Pratique avec des outils tiers ; voir la section dédiée |
| Auto Unload Unused JIT Models | Décharge les modèles JIT devenus inutilisés | Libère la mémoire |
| Only Keep Last JIT Loaded Model | Ne garde que le dernier modèle chargé à la demande | Utile sur une carte à VRAM limitée |
#3. Tester avec curl
Un premier appel de contrôle suffit pour valider le serveur. Dans les requêtes, le champ model doit contenir l'identifiant du modèle tel qu'il apparaît dans LM Studio, et non un nom générique comme local-model : la documentation le rappelle dans son exemple curl.
La réponse est un JSON au format OpenAI : choices[0].message.content contient le texte. Si le champ model est faux, ou si le chargement à la demande est désactivé et que le modèle n'est pas chargé, la requête échoue : vérifiez d'abord l'identifiant renvoyé par /v1/models.
#4. Appeler depuis Python
Le SDK openai s'utilise en changeant uniquement l'adresse de base : c'est la modification que montre la documentation de LM Studio. Le SDK exige une clé ; tant que l'authentification est désactivée, LM Studio ne la contrôle pas, et si vous activez l'authentification, la clé devient votre jeton d'API.
Le streaming fonctionne comme chez OpenAI : aucun changement côté client pour afficher les tokens en direct. Pour les agents et les éditeurs, LM Studio implémente aussi l'endpoint /v1/responses, présenté plus bas.
#Quelle API choisir : OpenAI, Anthropic ou native
LM Studio expose trois familles d'endpoints. Les endpoints compatibles OpenAI couvrent les modèles, les réponses, le chat, les embeddings et les complétions. Des endpoints compatibles Anthropic acceptent le format des messages d'Anthropic. Depuis la version 0.4.0, l'API native /api/v1 ajoute des fonctions propres à LM Studio : chat à état, chargement, déchargement et téléchargement de modèles, et réglage du contexte par requête.
| Besoin | Endpoint | Remarque |
|---|---|---|
| Remplacer l'API OpenAI dans un outil existant | /v1/chat/completions | Streaming et outils personnalisés pris en charge |
| Agent ou client de type Codex | /v1/responses | Chat à état et MCP disponibles |
| Embeddings pour un RAG | /v1/embeddings | Modèle d'embeddings chargé au préalable |
| Clients qui parlent le format Anthropic | Endpoints compatibles Anthropic | Même serveur, autre format de messages |
| Charger, décharger, télécharger un modèle | /api/v1/models/* | API native, recommandée par LM Studio depuis 0.4.0 |
| Fixer le contexte dans la requête | /api/v1/chat | Seul endpoint qui accepte le contexte par requête |
#6. Plusieurs modèles : chargement à la demande et TTL
Avec le chargement à la demande (JIT, pour Just in Time), le premier appel à un modèle le charge en mémoire, et /v1/models liste tous les modèles téléchargés, pas seulement ceux qui sont chargés. Sans JIT, /v1/models ne renvoie que les modèles déjà chargés, et vous devez charger le modèle avant de l'appeler. Ce mode est idéal quand un outil comme Zed, Cline ou Continue choisit lui-même son modèle.
- TTL par défaut
- Un modèle chargé à la demande est déchargé après 60 minutes sans requête.
- TTL par requête
- Ajoutez un champ ttl (en secondes) dans la requête ; 300 correspond à 5 minutes.
- TTL pour lms load
- Les modèles chargés avec lms load n'ont pas de TTL par défaut : utilisez l'option --ttl.
- Auto-Evict
- Activé par défaut : un seul modèle chargé à la demande reste en mémoire à la fois. Désactivez-le pour en garder plusieurs.
#7. Exposer le serveur sur le réseau, avec authentification
Pour qu'un autre poste du réseau appelle votre serveur, activez Serve on Local Network dans Server Settings, ou démarrez avec l'adresse d'écoute 0.0.0.0. Le serveur cesse alors d'écouter sur localhost seul : la documentation avertit que tout bind autre que 127.0.0.1 l'expose au-delà de la machine, et recommande d'activer l'authentification.
Contrairement à une idée répandue, LM Studio sait authentifier les requêtes. Par défaut, il n'exige aucune authentification ; en activant l'interrupteur dans Server Settings, il n'accepte plus que les requêtes portant un jeton d'API valide, créé dans Manage Tokens avec des permissions choisies. Le jeton n'est affiché qu'à la création : copiez-le immédiatement. Cette fonction demande LM Studio 0.4.0 ou une version plus récente.
Pour un accès depuis Internet, ne publiez pas le port : passez par un VPN ou un reverse proxy avec TLS. Le principe est identique à celui d'un serveur Ollama, détaillé dans le guide de sécurisation. Une alternative plus simple pour utiliser un modèle d'une autre machine est LM Link, qui sert un modèle d'un appareil distant comme s'il était chargé localement.
#Sans interface graphique : llmster et démarrage automatique
Depuis la version 0.4.0, le cœur de LM Studio existe sous forme de démon autonome, llmster, conçu pour tourner sans interface sur un serveur Linux, une machine de GPU ou un poste local. Il s'installe avec une ligne de commande, se lance avec lms daemon up, puis le serveur démarre avec lms server start. Sur un poste avec interface, vous pouvez aussi cocher, dans les réglages de l'application, l'option qui lance le serveur à l'ouverture de session : fermer l'application la réduit alors dans la barre système et le serveur continue.
#9. Performance : ce qui compte vraiment
- GPU offload
- Chargez le plus de couches possible dans la VRAM. Un modèle qui déborde vers la mémoire centrale perd l'essentiel de son débit.
- Context Length
- Choisissez le contexte dont vous avez besoin, pas le maximum : le cache du contexte occupe de la VRAM et augmente avec la longueur.
- Max Concurrent Predictions
- Nombre de requêtes traitées en même temps par un modèle ; au-delà, elles attendent en file.
- Unified KV Cache
- Activé par défaut : les ressources ne sont pas partagées à parts fixes entre requêtes, ce qui permet des tailles de requêtes variables.
Le guide sur Flash Attention et celui sur la fenêtre de contexte détaillent les effets sur la mémoire. Pour du débit multi-utilisateurs important, un serveur dédié reste plus adapté : le guide sur vLLM montre le déploiement.
#Limites et alternatives : ce qui a changé
Plusieurs limites souvent citées ne sont plus vraies, et les corriger change le choix de l'outil. Le tableau confronte ce que l'on lit encore à ce que la documentation actuelle indique.
| Idée reçue | Réalité |
|---|---|
| Pas d'authentification | Jetons d'API disponibles depuis la 0.4.0, désactivés par défaut |
| Les requêtes s'exécutent en séquence | La 0.4.0 traite des requêtes parallèles au même modèle (batching continu), jusqu'à Max Concurrent Predictions ; les suivantes attendent |
| Licence commerciale obligatoire au travail | Gratuit à la maison et au travail depuis juillet 2025, d'après l'annonce de LM Studio |
| Impossible sans interface graphique | llmster fonctionne en démon, sans GUI |
| Un seul poste, pas de partage | Serve on Local Network et LM Link permettent de servir d'autres appareils |
Restent de vraies limites : LM Studio est fait pour un poste, pas pour un cluster ; le batching continu ne remplace pas un serveur pensé pour des dizaines d'utilisateurs, comme vLLM ; et les mises à jour de l'application peuvent changer un comportement, ce qui impose de figer la version sur une machine qui sert un service. Pour choisir entre LM Studio et ses concurrents, comparez-les avant de vous engager.
- Déployer vLLM en production
- Ollama vs LM Studio vs Jan vs GPT4All
- LM Studio sur Linux
- Brancher Cline sur un modèle local
- Source : documentation LM Studio, serveur d'API local
- Source : documentation LM Studio, réglages du serveur
- Source : documentation LM Studio, authentification
- Source : documentation LM Studio, compatibilité OpenAI
- Source : annonce de LM Studio 0.4.0
Comment activer le serveur API dans LM Studio ?+
Comment rendre le serveur LM Studio accessible depuis un autre PC ?+
LM Studio a-t-il une authentification pour son API ?+
LM Studio traite-t-il plusieurs requêtes en parallèle ?+
Quel identifiant mettre dans le champ model ?+
LM Studio est-il gratuit pour un usage en entreprise ?+
Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.