Aller au contenu
Cercle IA Tech · IA en local Un site du réseau Cercle IA Tech

Guide

Appeler un LLM local depuis son code : API Ollama et autres

Brancher un programme sur un modèle local : API native d'Ollama, interface compatible, adresses et ports d'Ollama, LM Studio, llama.cpp et vLLM.

Mis à jour le

Un modèle local s'appelle depuis votre code comme un service en ligne : une requête HTTP vers une adresse locale. Les quatre outils courants, Ollama, LM Studio, llama.cpp et vLLM, exposent tous une interface compatible avec celle d'OpenAI. Vous pouvez donc utiliser une bibliothèque cliente répandue en changeant seulement l'adresse de base. Ollama propose en plus sa propre interface, sur http://localhost:11434/api. Faits tirés de la documentation de chaque outil, lue le 15/11/2026.

Les adresses à connaître

Serveur Adresse de base compatible OpenAI Clé
Ollama http://localhost:11434/v1/ exigée par le client, ignorée par Ollama
LM Studio http://localhost:1234/v1 (port de ses exemples) —
llama.cpp http://localhost:9931/v1 aucune par défaut ; --api-key pour en exiger une
vLLM http://localhost:8000/v1 --api-key ou VLLM_API_KEY

Exemple en Python, avec Ollama

D'après la documentation de compatibilité, avec un modèle déjà téléchargé :

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:11434/v1/",
    api_key="ollama",  # exigée par le client, ignorée par Ollama
)

reponse = client.chat.completions.create(
    model="gemma4",
    messages=[{"role": "user", "content": "Rédige un accusé de réception en deux phrases."}],
)
print(reponse.choices[0].message.content)

Pour vLLM, changez base_url en http://localhost:8000/v1 et mettez la clé définie au lancement ; la documentation de vLLM montre exactement ce schéma. Pour LM Studio, http://localhost:1234/v1.

Ce que l'interface compatible d'Ollama accepte, et ce qu'elle refuse

Points d'accès pris en charge d'après la documentation : /v1/chat/completions, /v1/completions, /v1/models, /v1/embeddings, /v1/responses (sans état seulement) et des points d'accès audio.

Limites à connaître avant de migrer un programme existant :

  • Discussion : pas de logprobs, pas d'images par adresse web (les images en base64 fonctionnent), pas de tool_choice, logit_bias, user ni n.
  • Plongements : pas d'entrées sous forme de tableaux de jetons.
  • Responses : pas de requêtes avec état (previous_response_id, conversation).
  • Contexte : l'interface d'OpenAI n'a pas de réglage de taille de contexte. La documentation conseille un Modelfile :
FROM gemma4
PARAMETER num_ctx 16384

puis ollama create mon-modele et model="mon-modele" dans vos requêtes. Sans cela, vous restez sur la fenêtre par défaut, qui dépend de la mémoire vidéo (voir Commandes Ollama).

L'interface native d'Ollama

Ollama a sa propre interface sur http://localhost:11434/api. D'après l'introduction de l'API, pour l'inférence locale, on appelle http://localhost:11434/api/chat avec un modèle téléchargé, sans en-tête d'autorisation :

curl http://localhost:11434/api/chat -d '{
  "model": "gemma4",
  "messages": [{"role": "user", "content": "Bonjour"}],
  "stream": false
}'

Pour les plongements (les vecteurs qui servent à la recherche par le sens), la documentation décrit POST /api/embed avec les champs model et input (une chaîne, ou une liste de chaînes pour traiter plusieurs textes d'un coup). Les vecteurs renvoyés sont normalisés, et la page recommande d'utiliser le même modèle pour indexer et pour interroger.

L'interface native expose aussi des réglages propres à Ollama, comme keep_alive, qui garde le modèle en mémoire plus ou moins longtemps (5 minutes par défaut d'après la FAQ). L'interface compatible OpenAI, elle, permet de passer d'un serveur à l'autre sans réécrire le code.

Natif ou compatible : que choisir ?

Vous voulez… Choisissez
pouvoir changer de serveur (Ollama, vLLM, service en ligne) sans réécrire l'interface compatible OpenAI
régler finement le chargement et le contexte d'Ollama à chaque requête l'interface native
des plongements pour un moteur de recherche interne l'une ou l'autre, avec le même modèle pour indexer et pour interroger

Avant de mettre en production

  • Clé et réseau. Un serveur local sans clé est ouvert à quiconque l'atteint : laissez-le écouter sur 127.0.0.1, ou exigez une clé (llama.cpp, vLLM) et placez un proxy devant (voir Ollama sur un serveur).
  • Délais. Chez Ollama, un modèle inutilisé est déchargé après 5 minutes par défaut et doit être rechargé à l'appel suivant : prévoyez un délai d'attente généreux côté client, ou allongez keep_alive.
  • Tests. Vérifiez sur des exemples réels que le modèle choisi respecte les formats de sortie dont votre programme a besoin.

Pour les bases d'un appel à une interface de modèle (en-têtes, corps de la requête, réponse), voir la page Premier appel à une API de LLM du site consacré aux interfaces de programmation.

Questions fréquentes

Quelle clé d'API mettre pour Ollama en local ?

N'importe quelle valeur : la documentation d'Ollama indique que le client OpenAI exige une clé, mais qu'Ollama l'ignore en local.

Comment régler la taille du contexte via l'interface compatible OpenAI d'Ollama ?

Cette interface n'a pas de réglage de contexte. La documentation conseille de créer un modèle avec un Modelfile contenant PARAMETER num_ctx, puis d'appeler ce modèle.

Sur quel port écoutent les serveurs locaux ?

D'après leur documentation lue le 15/11/2026 : Ollama 11434, LM Studio 1234 dans ses exemples, llama.cpp 9931, vLLM 8000.

Sources

Pages consultées pour écrire cet article :

  1. https://docs.ollama.com/api/introduction
  2. https://docs.ollama.com/api/openai-compatibility
  3. https://docs.ollama.com/faq
  4. https://docs.ollama.com/capabilities/embeddings
  5. https://lmstudio.ai/docs/developer/openai-compat
  6. https://raw.githubusercontent.com/ggml-org/llama.cpp/master/tools/server/README.md
  7. https://docs.vllm.ai/en/latest/getting_started/quickstart.html
  8. https://docs.vllm.ai/en/latest/serving/online_serving/openai_compatible_server/

À lire aussi