~/tools / Faire tourner un LLM local sur votre serveur / Ollama API Request Builder

Ollama API Request Builder — Créez une requête curl vers /api/chat d'Ollama : format, tools, think, options

Créez une requête vers le point d'accès /api/chat d'Ollama à partir d'un formulaire : le modèle, un message système et un message utilisateur, une sortie structurée avec format et un JSON Schema, des définitions d'outils, la réflexion, le streaming, des options comme temperature et num_ctx, des séquences d'arrêt et keep_alive. Vous obtenez une commande curl prête à l'emploi et le corps JSON. Chaque champ provient de la référence officielle de l'API d'Ollama. Rien ne quitte votre navigateur.

Options, séquences d'arrêt et keep_alive

Les champs vides ne sont pas envoyés, donc les réglages du modèle restent en vigueur.

Commande curl

Exécutez-la dans un terminal sur une machine qui peut atteindre Ollama.

curl http://localhost:11434/api/chat -d '{
  "model": "qwen3:4b",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about Canada."
    }
  ],
  "format": {
    "type": "object",
    "properties": {
      "name": {
        "type": "string"
      },
      "capital": {
        "type": "string"
      },
      "languages": {
        "type": "array",
        "items": {
          "type": "string"
        }
      }
    },
    "required": [
      "name",
      "capital",
      "languages"
    ]
  },
  "options": {
    "temperature": 0
  },
  "stream": false
}'

Corps JSON

{
  "model": "qwen3:4b",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about Canada."
    }
  ],
  "format": {
    "type": "object",
    "properties": {
      "name": {
        "type": "string"
      },
      "capital": {
        "type": "string"
      },
      "languages": {
        "type": "array",
        "items": {
          "type": "string"
        }
      }
    },
    "required": [
      "name",
      "capital",
      "languages"
    ]
  },
  "options": {
    "temperature": 0
  },
  "stream": false
}

Champs tels qu'indiqués dans la référence de l'API d'Ollama pour /api/chat, vérifiés le 2026-11-03. API d'Ollama : Generate a chat message

Tout se passe dans votre navigateur. L'outil se contente d'écrire la commande et n'envoie rien.

Le point d'accès /api/chat d'Ollama prend un corps JSON avec un modèle et une liste de messages, plus des champs facultatifs : tools pour l'appel de fonctions, format pour une réponse JSON ou une réponse conforme à un JSON Schema, options pour des réglages comme temperature et num_ctx, stream, think et keep_alive. Écrire ce corps à la main dans un terminal est source d'erreurs : une virgule manquante le casse, une apostrophe dans un message termine les guillemets du shell, et un nombre saisi comme du texte peut ne pas être lu comme un nombre. Cet outil construit le corps à partir d'un formulaire et l'enveloppe dans une commande curl à la forme des exemples de la documentation d'Ollama, en échappant les apostrophes pour le shell. Il vérifie que le JSON Schema et la liste d'outils sont du JSON valide, que chaque outil a le type, le name et les parameters exigés par la référence de l'API, et que les options sont des nombres du bon type. Nous avons exécuté les commandes générées sur Ollama 0.40.11 avec qwen2.5:7b : une requête avec JSON Schema a renvoyé une réponse de cette forme, une requête avec un outil a renvoyé un appel d'outil, et le streaming, le mode json, les séquences d'arrêt et keep_alive ont fonctionné sans erreur.

Le cœur de cet outil est open source, sous licence MIT. github.com/seigo5555/toolkitbox-lib/src/ollama-api-request.ts

Cas d'usage

  • Essayer la sortie structurée sur votre propre serveur avant d'écrire du code : collez un JSON Schema et voyez ce que renvoie le modèle
  • Vérifier qu'un modèle appelle votre fonction, avec la définition d'outil que vous comptez utiliser dans votre application
  • Appeler Ollama derrière un proxy nginx avec mot de passe, avec la bonne URL et curl -u

Utilisation

  1. Saisissez l'adresse de votre serveur Ollama (http://localhost:11434 si vous la laissez vide) et le nom du modèle, puis rédigez le message utilisateur et, si vous le souhaitez, un message système.
  2. Choisissez un format de sortie, ajoutez des définitions d'outils sous forme de tableau JSON, et réglez la réflexion et le streaming. Ouvrez Options pour définir temperature, num_ctx, une seed, des séquences d'arrêt ou keep_alive. Les champs vides sont omis.
  3. Copiez la commande curl et exécutez-la dans un terminal sur une machine qui peut atteindre Ollama. Le corps JSON est affiché séparément si vous voulez l'envoyer depuis votre propre code.

FAQ

À quoi sert stream ?

La référence de l'API donne à stream la valeur par défaut true. Une réponse en streaming arrive sous forme de JSON délimité par des sauts de ligne, un morceau à la fois. Avec stream à false, la documentation indique que la réponse revient sous la forme d'un seul objet JSON, que la page sur le streaming qualifie de plus simple à traiter et préférable pour les réponses courtes ou les sorties structurées. L'outil écrit "stream": false uniquement lorsque vous désactivez le streaming.

Quelles valeurs think peut-il prendre ?

La référence de l'API indique que true demande la réflexion, false demande l'absence de sortie de réflexion, et qu'une chaîne sélectionne un niveau que le modèle définit ; les nombres ne sont pas pris en charge. La documentation dit d'utiliser /api/show pour trouver les valeurs qu'un modèle prend en charge, et l'outil affiche cette commande lorsque vous définissez think. Lors de notre test, think false a fonctionné avec qwen2.5:7b, et think true a été refusé avec "qwen2.5:7b" does not support thinking.

Quelle est la différence entre json et un JSON Schema dans format ?

La référence de l'API indique que format peut être json ou un JSON schema. json demande n'importe quel JSON valide. Un schema décrit la forme exacte, comme les noms des propriétés et lesquelles sont obligatoires, et lors de notre test la réponse l'a suivi. L'outil envoie le schema comme un objet, et non comme une chaîne.

À quoi doit ressembler une définition d'outil ?

La référence de l'API exige type, qui vaut toujours function, et un objet function avec un name et parameters, où parameters est un JSON Schema des arguments ; description est facultatif. L'outil vérifie ces champs. Lorsque le modèle décide d'appeler la fonction, la réponse contient message.tool_calls au lieu de texte.

Comment appeler un Ollama protégé par un mot de passe ?

Saisissez l'adresse du proxy, par exemple https://ollama.example.com, et le nom d'utilisateur. L'outil ajoute -u avec ce nom à la commande curl, et curl demande ensuite le mot de passe, de sorte que le mot de passe ne fait jamais partie de la commande. L'Ollama nginx Config Generator de ce site construit un tel proxy.

Quelque chose est-il envoyé à un serveur ?

Non. L'outil se contente d'écrire la commande. Rien n'est envoyé tant que vous ne l'exécutez pas vous-même.

Articles liés

Voir aussi