Chat Completions

Génère une réponse à partir d'une liste de messages. Compatible OpenAI Chat Completions.

POST https://api.cloudzir.com/v1/chat/completions

Authentification#

Authorization: Bearer zir_ai_<48 caractères hexadécimaux>
Content-Type: application/json

Paramètres du corps#

ChampTypeDéfautDescription
model requisstring- mina-flash, mina-low ou mina-full. Sinon 404.
max_cost_micro_dzdinteger- Plafond de dépense en micro-DZD, uniquement avec mina-auto. La requête échoue si elle le dépasse.
messages requisarray- Liste non vide. Rôles : system, developer (= system), user, assistant, tool.
max_tokensinteger4096 Jetons de sortie maximum. Plafonné par le modèle (8192 / 16384 / 32768) ; au-delà, 400. Alias accepté : max_completion_tokens.
temperaturenumbermodèle0 à 2. Bas = moins variable, sans garantie de réponses identiques.
top_pnumbermodèleIntervalle ]0, 1].
streambooleanfalseRéponse en SSE (guide).
stream_optionsobject- {"include_usage": true} ajoute un dernier chunk avec usage.
stopstring ou array-4 séquences d'arrêt maximum.
toolsarray-64 outils maximum (guide).
tool_choicestring ou objectauto auto · none · required · {"type":"function","function":{"name":"…"}}
response_formatobject- {"type":"text"} ou {"type":"json_object"}. json_schema refusé (400).
frequency_penalty, presence_penaltynumber0−2 à 2.
reasoning_effortstring- off · minimal · low · medium · high · xhigh · max (guide).
thinkingobjectmodèle {"type":"enabled"} ou {"type":"disabled"}. Prime sur le défaut du modèle.
userstring- Identifiant de votre utilisateur final : isole les limites de débit. Alphanumérique, ≤ 512.
ninteger1Seule la valeur 1 est acceptée.

Ignorés sans erreur : logprobs, top_logprobs, seed, logit_bias, parallel_tool_calls, service_tier, metadata.

Objet message#

ChampDescription
roleRôle du message.
contentChaîne, ou liste de blocs {"type":"text","text":"…"} et {"type":"image_url","image_url":{"url":"…"}} (Vision).
tool_callsSur un message assistant : appels demandés au tour précédent.
tool_call_idSur un message tool : identifiant de l'appel auquel il répond.
nameNom optionnel de l'émetteur.

Requête#

curl https://api.cloudzir.com/v1/chat/completions \
  -H "Authorization: Bearer $CLOUDZIR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "mina-low",
    "messages": [
      {"role": "system", "content": "Tu es un assistant concis."},
      {"role": "user", "content": "Cite trois wilayas côtières."}
    ],
    "max_tokens": 200,
    "temperature": 0.3
  }'

Réponse#

{
  "id": "chatcmpl-4334a6f158894999",
  "object": "chat.completion",
  "created": 1766400000,
  "model": "mina-low",
  "choices": [
    {
      "index": 0,
      "message": {"role": "assistant", "content": "Alger, Oran et Béjaïa."},
      "finish_reason": "stop"
    }
  ],
  "usage": {"prompt_tokens": 28, "completion_tokens": 9, "total_tokens": 37}
}
ChampDescription
idIdentifiant de la complétion.
modelToujours le modèle Mina demandé.
choices[].messagecontent et, le cas échéant, tool_calls.
finish_reason stop (terminé) · length (max_tokens atteint) · tool_calls (outil demandé).
usageJetons facturés : source de vérité.

En-têtes de réponse#

En-têteDescription
X-Request-IdIdentifiant unique de la requête (UUID) : à fournir au support. Un X-Request-ID envoyé par le client est repris tel quel.
X-RateLimit-Limit-RequestsRPM de votre palier.
X-RateLimit-Remaining-RequestsRequêtes restantes dans la fenêtre.
Retry-AfterSur 429/503 : secondes avant réessai.

Réponse en streaming#

Avec "stream": true, la réponse est un flux SSE d'objets chat.completion.chunk terminé par data: [DONE]. Structure détaillée dans le guide Streaming.

Codes d'erreur#

400, 401, 402, 403, 404, 429, 500, 503 : voir Codes d'erreur.

Paramètres

Réponse API