docs
Pour commencer

Comment fonctionne une API pour l’intelligence artificielle ?

Markdown

Comment ça fonctionne

Ce qui se passe entre votre application et le modèle lorsqu’une requête est envoyée.

Guide complet

Vous envoyez une requête à l’API Ailoot comme si vous l’envoyiez directement à OpenAI, Anthropic ou Google. Ailoot vérifie la clé et le solde, transmet la requête au modèle, renvoie la réponse au même format et débite le montant selon la consommation réelle.

01RequêteVotre client envoie une requête à api.ailoot.ai avec une clé sk-…
02Vérification et réserveClé, plafonds, solde. Un montant est réservé pendant la préparation de la réponse.
03ModèleLe modèle répond et la réponse est renvoyée dans votre format.
04DébitUn seul débit selon les jetons réellement utilisés; le reste de la réserve est libéré.

Une clé, trois formats

Le format dépend du chemin de la requête, et non du modèle. Vous pouvez appeler un même modèle Claude via OpenAI Chat, OpenAI Responses ou Anthropic Messages : la réponse utilise le format du chemin appelé.

FormatCheminClients qui l’utilisent
OpenAI Chat Completions/v1/chat/completionsOpenAI SDK, la plupart des outils de clavardage et des éditeurs, n8n, LangChain
OpenAI Responses/v1/responsesCodex CLI, OpenAI Agents SDK, versions récentes des SDK
Anthropic Messages/v1/messagesClaude Code, Anthropic SDK, Zed, Cline
Gemini/v1beta/models/{model}:generateContentGemini CLI, Google GenAI SDK

Montants : réserve et débit unique

  • Avant l’envoi d’une nouvelle requête textuelle, Ailoot réserve le montant estimé pour l’entrée et une réponse typique, en tenant compte de la limite (max_tokens) et des conditions du modèle utilisé. Si la réserve dépasse le solde disponible ou le plafond de la clé, la limite transmise ne peut être réduite que pour un modèle et une méthode qui la respectent réellement, sans descendre sous 256 jetons ni sous le minimum de réponse fixé. Pour les images, la vidéo et l’audio en sortie, le coût total du résultat reste réservé.
  • Après la réponse, un seul débit est effectué selon la consommation réelle. La part inutilisée de la réserve est immédiatement rendue disponible dans le solde.
  • Si la réponse coûte plus que la réserve, la différence est prélevée sur le solde disponible. Le solde ne devient jamais négatif.
  • Si le solde ne couvre même pas la réserve minimale, la requête n’est pas envoyée : vous recevez une erreur 402 explicite et aucun montant n’est débité.
  • Une erreur qui ne produit aucun résultat n’est pas facturée.

Les détails et un exemple de calcul figurent sur la page Réserve et débit.

Erreurs avec Request ID

Chaque réponse reçoit un identifiant de requête, dans l’en-tête X-Request-ID et dans le texte de l’erreur. Les erreurs sont au format JSON de l’API appelée, afin que les SDK les reconnaissent correctement. En cas de problème, transmettez le Request ID à l’équipe de soutien — nous pourrons ainsi retrouver la requête en une minute.

401 Unauthorized
{
  "code": "API_KEY_REQUIRED",
  "error": {
    "code": "invalid_api_key",
    "message": "No API key was sent with the request. Nothing was charged. Please check that the full key is sent in the Authorization header as \"Bearer <key>\". Request ID: 3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6.",
    "param": null,
    "reason": "invalid_api_key",
    "request_id": "3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6",
    "type": "invalid_request_error"
  },
  "message": "No API key was sent with the request. Nothing was charged. …"
}

Flux et délais d’attente

Les réponses en continu (stream: true) utilisent Server-Sent Events. Ailoot fournit la réponse textuelle facturée après le calcul du coût. Ainsi, avec stream: true , le format reste un flux SSE, mais le texte arrive en un seul bloc lorsque le modèle a terminé, et non mot par mot. Si la réponse prend plus d’environ 15 secondes, les flux Chat Completions, Responses et Messages commencent par des lignes de service : ping (environ toutes les 10 secondes), puis la ligne : ailoot-charged-usd … avec le montant débité, suivie des données. Les SDK ignorent ces lignes.

Le format Gemini ne contient pas de lignes de service : la réponse :streamGenerateContent arrive en entier après le calcul. Prévoyez une marge dans le délai d’attente du client pour les modèles de raisonnement : plusieurs minutes sont normales.

En-têtes de réponse

X-Request-ID est présent dans chaque réponse. Ailoot ajoute les autres en-têtes aux réponses textuelles facturées :

En-têteContenu
X-Request-IDIdentifiant de la requête, demandé par le soutien
X-Ailoot-Charged-USDMontant débité pour cette requête, en dollars
X-Ailoot-Output-TokensNombre de jetons de réponse facturés
X-Ailoot-Max-Tokens-CappedLimite de réponse réduite parce que le solde ne couvrait pas la réserve complète
X-Ailoot-Notice-Code, X-Ailoot-NoticeExplication si la réponse s’est arrêtée à la limite de longueur

Si le flux a déjà commencé par des lignes de service, ces informations sont transmises dans une ligne de commentaire avant les données, et non dans un en-tête.

Cache des requêtes (prompts)

Si le modèle prend en charge le cache, renvoyer un long préfixe, comme une instruction système ou des documents, peut coûter moins cher. Les tarifs de lecture et d’écriture du cache figurent dans la fiche du modèle dans le catalogue. Le développeur du modèle décide de l’utilisation du cache; Ailoot ne la garantit pas.

Vous avez d’autres questions? Envoyez le Request ID et une description : nous vous aiderons à comprendre.Contacter le soutien
Plus de détails

Questions sur le fonctionnement de l’API

Que fait Ailoot lorsqu’une requête est envoyée à l’API ?

Vous envoyez une requête à l’API Ailoot comme si vous l’envoyiez directement à OpenAI, Anthropic ou Google. Ailoot vérifie la clé et le solde, transmet la requête au modèle, renvoie la réponse au même format et débite le montant selon la consommation réelle.