FR ▾
Obtenir une clé API

API Ollama vs API OpenAI : endpoints et code

La question API Ollama vs API OpenAI se résume à deux formats de requête et deux emplacements pour exécuter un modèle. Ollama dispose de sa propre API native et d'une couche compatible OpenAI, le passage à un endpoint hébergé de type OpenAI implique donc un changement d'URL de base et de clé.

Mis à jour

Machine de bureau et serveur cloud reliés par deux ponts légers transportant des enveloppes de message identiques
Fenêtre de chat connectée à la fois à un ordinateur local et à un serveur cloud par des câbles lumineux

Aucune carte nécessaire. Après l'inscription, réclamez $0,50 de crédit d'essai gratuit en un clic (une fois par personne).

Obtenir une clé API

Points clés

  • Ollama propose des routes natives sous /api et une couche compatible OpenAI sous /v1 ; les clients écrits pour le SDK OpenAI fonctionnent généralement avec les deux.
  • Ollama diffuse nativement du JSON délimité par des sauts de ligne en streaming, tandis que le format OpenAI diffuse des événements envoyés par le serveur en streaming.
  • Passer du local à l'hébergé signifie changer l'URL de base, la clé et le nom du modèle, pas votre code.
  • Le local conserve les données sur votre machine ; l'hébergé supprime le travail matériel et ajoute une facture par token.

Le résumé

Tous deux demandent de POSTER une liste de messages et de recevoir du texte en retour. La différence réside dans la forme de la requête, l'emplacement du serveur et celui qui paie le GPU. Ollama exécute des modèles sur votre propre ordinateur et écoute sur le port 11434. L'API OpenAI est un service hébergé avec ses propres modèles payants. Dans la comparaison API Ollama vs API OpenAI, les gens oublient souvent une troisième chose : Ollama expose également des routes compatibles OpenAI, donc les deux formats se chevauchent.

Ce chevauchement rend la migration peu coûteuse. Si votre application utilise déjà le SDK OpenAI, vous pouvez la pointer vers Ollama local aujourd'hui et vers une URL compatible OpenAI hébergée demain. L'endpoint hébergé sur ce site est l'un de ceux-ci. Il sert un seul modèle, uncensored, à https://api.ollamansfw.com/v1, et il ne s'agit pas d'un produit officiel d'OpenAI, Meta ou d'un autre laboratoire.

Différences endpoint par endpoint

TâcheOllama natifDe style OpenAI
ChatPOST /api/chatPOST /v1/chat/completions
Prompt uniquePOST /api/generatePOST /v1/responses ou chat completions
Lister les modèlesGET /api/tagsGET /v1/models
AuthentificationAucune par défautAuthorization: Bearer key
Diffusion en continuJSON délimité par des sauts de ligneÉvénements envoyés par le serveur (SSE), se terminant par un marqueur done
Nom du modèleTout ce que vous avez extrait, comme llama3Tout ce que le fournisseur liste

Ollama sert également /v1/chat/completions et /v1/models sur le même port, ce qui permet aux clients OpenAI de fonctionner avec lui. Sa valeur par défaut pour les appels natifs est le streaming, donc définissez stream: false lorsque vous souhaitez une réponse JSON unique.

L'endpoint hébergé implémente POST /v1/chat/completions, POST /v1/responses et GET /v1/models, ainsi que des vérifications de solde à GET /v1/balance. Consultez la documentation de l'API pour la liste complète.

La même requête, trois façons

Ollama natif depuis Python :

import requests

r = requests.post(
    "http://localhost:11434/api/chat",
    json={
        "model": "llama3",
        "messages": [{"role": "user", "content": "Say hello in five words."}],
        "stream": False,
    },
)
print(r.json()["message"]["content"])

Le SDK OpenAI, avec les paramètres locaux et hébergés côte à côte. Seule la ligne commentée change :

from openai import OpenAI

# Local Ollama through its OpenAI-compatible layer:
# client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")

# Hosted endpoint, same code from here on:
client = OpenAI(base_url="https://api.ollamansfw.com/v1", api_key="YOUR_KEY")

resp = client.chat.completions.create(
    model="uncensored",   # local would be e.g. "llama3"
    messages=[{"role": "user", "content": "Say hello in five words."}],
)
print(resp.choices[0].message.content)

Et curl contre l'endpoint hébergé avec le streaming activé :

curl https://api.ollamansfw.com/v1/chat/completions \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"uncensored","messages":[{"role":"user","content":"Hello"}],"stream":true}'

L'analyse diffère du côté natif : chaque ligne diffusée est un objet JSON avec message.content, et la dernière a done: true. Au format OpenAI, chaque événement commence par data: , contient une pièce choices[0].delta.content, et le flux se termine avec [DONE]. Utilisez le SDK et vous ne verrez aucun des deux.

Où chaque solution est pertinente

Ollama local est le bon choix lorsque la confidentialité est la priorité, lorsque vous disposez d'un GPU avec suffisamment de mémoire pour le modèle souhaité, ou lorsque vous expérimentez avec plusieurs modèles. Rien ne quitte votre machine et il n'y a pas de facture par token. Les coûts apparaissent sous forme de matériel, d'énergie et de votre temps. Notre guide sur l'utilisation d'Ollama avec une interface graphique couvre le côté convivial de cette voie.

Un endpoint hébergé compatible OpenAI convient mieux lorsque vous manquez de matériel, avez besoin de nombreuses requêtes simultanées, exécutez un bot ou un service pour d'autres personnes, ou souhaitez une URL stable qui ne dépend pas de la mise en veille de votre ordinateur portable. Une clé complète permet 8 requêtes concurrentes et 300 requêtes par minute. La fenêtre de contexte est de 100 000 tokens, ce qui est plus que ce que de nombreux environnements locaux peuvent garder en mémoire.

Beaucoup de gens utilisent les deux : local pour les expériences, hébergé pour tout ce qui doit rester en ligne. Si vous pesez d'autres outils locaux, lisez les alternatives logicielles à Ollama.

Migration d'Ollama local vers hébergé

  1. Passez d'abord au format OpenAI. Si votre code appelle /api/chat, déplacez-le vers le SDK OpenAI pointant vers la route /v1 d'Ollama. Confirmez qu'il fonctionne toujours localement.
  2. Obtenez une clé. Inscrivez-vous et réclamez le crédit d'essai de $0,50 sur la page des clés API. Aucun paiement n'est requis et cela dure 7 jours.
  3. Modifiez trois valeurs. URL de base vers https://api.ollamansfw.com/v1, clé vers la vôtre, modèle vers uncensored.
  4. Vérifiez les paramètres. La température, top_p, stop, seed et les pénalités sont transmises. Les options spécifiques au local comme num_ctx ou keep_alive d'Ollama ne s'appliquent pas ; la fenêtre est fixée à 100 000 tokens.
  5. Ajouter une logique de réessai. L'API hébergée renvoie 429 avec rate_limited ou concurrency au-delà d'une limite, et 429 avec Retry-After: 5 en cas de surcharge temporaire. Les serveurs locaux le font rarement, donc le code existant peut ne pas le gérer.

Si quelque chose échoue après le changement, l'article sur les erreurs courantes de l'API Ollama couvre les causes fréquentes telles que les mauvais ports et les noms de modèles manquants.

Coût de l'hébergement et ce qu'il ne fera pas

La facturation est en paiement à l'usage à partir d'un crédit prépayé : 0,15 $ par 1M de tokens d'entrée et 0,50 $ par 1M de tokens de sortie. Un tour de chat avec 1 000 tokens d'entrée et 400 tokens de sortie coûte 0,00015 $ + 0,0002 $ = 0,00035 $, donc 20 $ couvrent environ 57 000 tours de ce type. Les requêtes échouées ou refusées ne sont pas facturées et le crédit n'expire jamais. Les recharges vont de 20 $ à 500 $ avec des bonus de +5 % à partir de 50 $, +10 % à partir de 100 $ et +15 % à partir de 200 $. Le paiement est uniquement par crypto (USDT sur TRC20 ou USDC sur Base). Plus de détails sur la page des tarifs.

Limites à connaître : texte uniquement, donc pas d'embeddings, de génération d'images ou de fine-tuning. Si vous dépendez d'embeddings locaux, gardez-les locaux. Le modèle est ajusté pour répondre sans refus de contenu pour une utilisation adulte légale. Le contenu sexuel impliquant des mineurs n'est jamais autorisé. Les prompts ne sont pas utilisés pour l'entraînement.

Questions et réponses

L'API Ollama est-elle compatible avec l'API OpenAI ?

Partiellement. Ollama propose des routes natives sous /api et sert également des routes de type OpenAI telles que /v1/chat/completions, permettant aux clients SDK OpenAI de s'y connecter.

Que devez-vous modifier pour passer d'Ollama local à un endpoint hébergé ?

L'URL de base, la clé API et le nom du modèle. Si votre code utilise déjà le SDK OpenAI, rien d'autre ne doit changer.

L'API hébergée prend-elle en charge les embeddings comme Ollama ?

Non. Il s'agit uniquement de génération de texte : chat completions et responses, sans embeddings, images ni ajustement fin.

Ollama est-il gratuit ?

Le logiciel est gratuit à télécharger et à exécuter. Vous payez toujours le matériel et l'électricité, tandis qu'une API hébergée facture par token.