Source: https://ailoot.ai/docs/fr-ch/api/chat-completions/
Canonical: https://ailoot.ai/docs/fr-ch/api/chat-completions/
Language: fr-ch

[API](https://ailoot.ai/docs/fr-ch/) 

# Chat Completions

[Markdown](https://ailoot.ai/docs/fr-ch/api/chat-completions/index.md)

Réponse du modèle à une conversation au format OpenAI. C’est le format le plus courant : presque tous les clients le comprennent.

POST`https://api.ailoot.ai/v1/chat/completions`

Chat Completions

```bash
curl https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5-5",
    "messages": [
      {"role": "user", "content": "Explique en deux phrases ce qu’est une API."}
    ]
  }' 
```

```python
from openai import OpenAI
import os

client = OpenAI(max_retries=0, 
    base_url="https://api.ailoot.ai/v1",
    api_key=os.environ["AILOOT_API_KEY"],
)

resp = client.chat.completions.create(
    model="claude-sonnet-5-5",
    messages=[{"role": "user", "content": "Explique en deux phrases ce qu’est une API."}],
)
print(resp.choices[0].message.content)
```

```js
import OpenAI from "openai";

const client = new OpenAI({ maxRetries: 0,
  baseURL: "https://api.ailoot.ai/v1",
  apiKey: process.env.AILOOT_API_KEY,
});

const resp = await client.chat.completions.create({
  model: "claude-sonnet-5-5",
  messages: [{ role: "user", content: "Explique en deux phrases ce qu’est une API." }],
});
console.log(resp.choices[0].message.content);
```

200 OK

```json
{
  "id": "chatcmpl-8f2c…",
  "object": "chat.completion",
  "created": 1790812800,
  "model": "claude-sonnet-5-5",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Une API est une convention qui définit comment un programme demande à un autre d’effectuer une action…"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 21,
    "completion_tokens": 48,
    "total_tokens": 69
  }
}
```

## Authentification

| Paramètre | Type | Obligatoire | Description |
| --- | --- | --- | --- |
| `Authorization` | header | obligatoire | Clé au format `Bearer sk-…`. Les en-têtes suivants conviennent également : `x-api-key` ou `x-goog-api-key`. |

## Corps de la requête

| Paramètre | Type | Obligatoire | Description |
| --- | --- | --- | --- |
| `model` | string | obligatoire | ID du modèle figurant dans le [catalogue](https://ailoot.ai/models/fr-ch/), par exemple `claude-sonnet-5-5`. Le modèle doit prendre en charge le format OpenAI Chat. |
| `messages` | array | obligatoire | Historique de la conversation : objets avec `role` (`system`, `developer`, `user`, `assistant`, `tool`) et `content` — sous forme de chaîne ou de tableau de parties (texte, `image_url`). |
| `stream` | boolean | facultatif | Réponse au format Server-Sent Events. Par défaut `false`. Le texte facturé arrive en un seul bloc après le calcul du coût, et non mot par mot. |
| `stream_options` | object | facultatif | `{"include_usage": true}` — envoyer l’ `usage` final comme dernier événement du flux. |
| `max_tokens` | integer | facultatif | Nombre maximal de tokens de la réponse. Le nouveau nom est `max_completion_tokens`. Si aucune limite n’est définie, Ailoot utilise 4096 (ou moins si la limite de réponse du modèle est plus faible ; Grok a sa propre limite). Pour les réponses longues, définissez explicitement la limite, sinon la réponse s’arrêtera à 4096 tokens avec `finish_reason: "length"`. Cette limite entre dans le calcul du montant réservé : plus elle est élevée, plus le solde disponible nécessaire est important. |
| `temperature` | number | facultatif | Degré d’aléatoire de la réponse, généralement de 0 à 2. Ce paramètre peut être ignoré par les modèles de raisonnement. |
| `top_p` | number | facultatif | Alternative à temperature : part de la masse de probabilité utilisée pour choisir les tokens. |
| `stop` | string \| array | facultatif | Chaînes qui interrompent la génération. |
| `tools` | array | facultatif | Descriptions des fonctions que le modèle peut appeler. Le format est celui d’OpenAI : `{"type": "function", "function": {...}}`. |
| `tool_choice` | string \| object | facultatif | `auto`, `none`, `required` ou une fonction précise. |
| `response_format` | object | facultatif | `{"type": "json_object"}` ou `{"type": "json_schema", ...}` pour une réponse structurée, si le modèle le prend en charge. |
| `reasoning_effort` | string | facultatif | Profondeur du raisonnement pour les modèles de raisonnement : `low`, `medium`, `high`. |

Les autres paramètres OpenAI sont transmis tels quels. Le développeur du modèle détermine si ce modèle les prend en charge.

## Réponse

| Paramètre | Type | Obligatoire | Description |
| --- | --- | --- | --- |
| `choices[].message` | object |  | Réponse du modèle : `content`, lors d’un appel d’outils : `tool_calls`. |
| `choices[].finish_reason` | string |  | `stop` — réponse terminée ; `length` — limite atteinte pour `max_tokens` (la réponse reste complète et est facturée selon l’utilisation réelle) ; `tool_calls` — le modèle appelle un outil. |
| `usage` | object |  | `prompt_tokens`, `completion_tokens`, `total_tokens` — ces valeurs servent à calculer le débit. |

Encore des questions ? Envoyez le Request ID et une description : nous vous aiderons à l’analyser.[Contacter l’assistance](mailto:support@ailoot.ai)

## Ailoot · L’entreprise et son portefeuille de projets





Ailoot s’appuie sur une expérience opérationnelle éprouvée, une large clientèle, un service stable et un suivi continu des KPI.





L’entreprise et son portefeuille de projets : des millions de clients ; des ventes qui se chiffrent en milliards chaque mois.





Ailoot met cette expérience opérationnelle au service de l’accès API aux fonctions d’IA dans les produits des clients, leurs agents, applications et automatisations.
