Protocoles d'API LLM
Atlas Cloud parle OpenAI Chat Completions, Completions, Responses, Images, Anthropic Messages et Google Gemini. Une clé, une URL de base, six formats de transport.
Atlas Cloud accepte six formats de requête différents sur la même URL de base avec la même clé API. Pointez un SDK existant vers Atlas Cloud et il fonctionne généralement sans modification — pas de réécriture, pas de couche d'adaptation à votre charge.
https://api.atlascloud.aiMatrice des protocoles
| Protocole | Point de terminaison | À utiliser quand |
|---|---|---|
| OpenAI Chat Completions | POST /v1/chat/completions | Choix par défaut. Couverture de modèles la plus large |
| OpenAI Completions | POST /v1/completions | Complétion de texte historique. Peu de modèles la prennent en charge |
| OpenAI Responses | POST /v1/responses | Vous utilisez déjà l'API Responses |
| OpenAI Images | POST /v1/images/generations, /v1/images/edits | Appels d'image synchrones via un client OpenAI |
| Anthropic Messages | POST /v1/messages | Vous utilisez déjà le SDK Anthropic ou Claude Code |
| Google Gemini | POST /v1beta/models/{model}:generateContent | Vous utilisez déjà le SDK Google GenAI |
Tous les modèles ne parlent pas tous les protocoles. Chaque modèle publie une liste supported_apis — vérifiez-la avant de changer de format. La liste est ordonnée : la première entrée est celle recommandée pour ce modèle. Les modèles de la famille Gemini, par exemple, n'exposent l'intégralité de leurs capacités multimodales que sur le format Gemini natif.
Authentification
Votre clé API fonctionne avec quatre styles d'en-tête, afin que les SDK conçus pour d'autres fournisseurs s'authentifient sans modification :
-H "Authorization: Bearer $ATLASCLOUD_API_KEY"Recommandé, et fonctionne avec tous les protocoles.
Les clés API Atlas Cloud commencent par apikey-. Voir Clés API.
OpenAI Chat Completions
Le format le plus largement pris en charge.
curl https://api.atlascloud.ai/v1/chat/completions \
-H "Authorization: Bearer $ATLASCLOUD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-ai/deepseek-v3.2",
"messages": [{"role": "user", "content": "Explain HTTP vs HTTPS"}],
"max_tokens": 1024,
"stream": true
}'Avec le SDK OpenAI — deux lignes à changer :
from openai import OpenAI
client = OpenAI(
api_key=os.environ["ATLASCLOUD_API_KEY"],
base_url="https://api.atlascloud.ai/v1",
)
response = client.chat.completions.create(
model="deepseek-ai/deepseek-v3.2",
messages=[{"role": "user", "content": "Explain HTTP vs HTTPS"}],
)
print(response.choices[0].message.content)Paramètres d'échantillonnage. La prise en charge varie selon le modèle — chaque modèle publie ses propres supported_sampling_parameters. Couramment disponibles : temperature (0–2), top_p (0–1), top_k, min_p, frequency_penalty (−2–2), presence_penalty (−2–2), repetition_penalty, stop, seed, logit_bias, logprobs, top_logprobs (0–20).
Sortie structurée. response_format accepte à la fois {"type": "json_object"} et une définition json_schema, sur les modèles qui annoncent json_mode ou structured_outputs.
Appels d'outils. tools, tool_choice et parallel_tool_calls sont transmis sur les modèles qui annoncent tools.
Entrée multimodale. Images, vidéo et audio peuvent être joints en tant que parties de contenu :
{
"role": "user",
"content": [
{ "type": "text", "text": "What is in this image?" },
{ "type": "image_url", "image_url": { "url": "https://example.com/photo.jpg" } },
{ "type": "video_url", "video_url": { "url": "https://example.com/clip.mp4" } },
{ "type": "input_audio", "input_audio": { "data": "<base64>", "format": "mp3" } }
]
}video_url est une extension Atlas Cloud au-delà de la spécification OpenAI. L'audio doit être en Base64 en ligne — une URL n'est pas acceptée pour input_audio.
Anthropic Messages
curl https://api.atlascloud.ai/v1/messages \
-H "x-api-key: $ATLASCLOUD_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-ai/deepseek-v3.2",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Hello"}]
}'Pointez le SDK Anthropic vers Atlas Cloud en définissant base_url sur https://api.atlascloud.ai.
Pris en charge. system (chaîne ou tableau de blocs), stop_sequences, tools avec input_schema, tool_choice, thinking, les blocs image (sources base64 et url), les blocs document et tool_result. Les blocs thinking de l'assistant sont mappés vers la sortie de raisonnement.
Différences à connaître :
| Comportement | Détail |
|---|---|
stop_sequences | Tronqué aux 4 premières entrées |
tool_choice: "any" | Mappé vers required |
cache_control | Ignoré lorsque le modèle cible est servi via un protocole traduit ; la mise en cache des prompts ne s'applique donc pas |
| Outils serveur intégrés | Recherche web, computer use et autres outils hébergés par Anthropic ne sont pas disponibles |
POST /v1/messages/count_tokens | Non implémenté |
| Multimodal | Images uniquement. Les parties vidéo et audio ne sont pas acceptées sur ce protocole |
Le streaming suit la séquence d'événements Anthropic : message_start, content_block_start, content_block_delta, content_block_stop, message_delta, message_stop. Il n'y a pas de sentinelle [DONE].
OpenAI Responses
curl https://api.atlascloud.ai/v1/responses \
-H "Authorization: Bearer $ATLASCLOUD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-ai/deepseek-v3.2",
"input": [{"role": "user", "content": [{"type": "input_text", "text": "Hello"}]}],
"max_output_tokens": 1024
}'Pris en charge. instructions, input sous toutes ses formes, tools, tool_choice, reasoning.effort, text.format (json_object et json_schema), text.verbosity, temperature, top_p, stream, parallel_tool_calls.
Ignorés silencieusement — acceptés sans erreur mais sans effet : previous_response_id, store, include, background, conversation, prompt, truncation, max_tool_calls, top_logprobs et reasoning.summary. metadata est renvoyé tel quel mais n'est pas transmis.
Comme previous_response_id et store n'ont aucun effet, l'état de conversation côté serveur n'est pas disponible. Envoyez la conversation complète à chaque requête.
Multimodal. Images et audio. Pas de vidéo sur ce protocole. Les images utilisent {"type": "input_image", "image_url": "<url string>"} — notez que la valeur est une simple chaîne, pas un objet.
Le streaming émet l'ensemble d'événements Responses standard et se termine par response.completed, response.incomplete ou response.failed. Il n'y a pas de sentinelle [DONE].
Google Gemini
# Non-streaming
curl "https://api.atlascloud.ai/v1beta/models/MODEL_ID:generateContent" \
-H "x-goog-api-key: $ATLASCLOUD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{"role": "user", "parts": [{"text": "Hello"}]}],
"generationConfig": {"maxOutputTokens": 1024, "temperature": 0.7}
}'
# Streaming — the alt=sse parameter is required
curl "https://api.atlascloud.ai/v1beta/models/MODEL_ID:streamGenerateContent?alt=sse" \
-H "x-goog-api-key: $ATLASCLOUD_API_KEY" \
-H "Content-Type: application/json" \
-d '{"contents": [{"role": "user", "parts": [{"text": "Hello"}]}]}'?alt=sse est obligatoire pour le streaming. Sans ce paramètre, la requête renvoie 404.
Pris en charge. contents[] avec les rôles user et model, systemInstruction, generationConfig et tools.
Multimodal. Images, vidéo et audio — en ligne via inline_data, ou par référence via file_data.file_uri.
Ce protocole n'est servi que par les modèles qui le parlent nativement. Les modèles dont l'identifiant contient nano, banana ou omni sont rejetés ici ; utilisez plutôt Chat Completions ou les points de terminaison de génération de médias.
OpenAI Images
Génération d'images synchrone pour les clients compatibles OpenAI :
curl https://api.atlascloud.ai/v1/images/generations \
-H "Authorization: Bearer $ATLASCLOUD_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "MODEL_ID", "prompt": "a cat", "n": 1, "size": "1024x1024"}'/v1/images/edits attend du multipart/form-data. Seul un petit nombre de modèles annonce ce protocole.
Ce chemin est différent du pipeline d'images principal. La plupart des modèles d'image — et tous les modèles vidéo, audio et 3D — utilisent les points de terminaison asynchrones décrits dans Prédictions. Vérifiez les supported_apis d'un modèle avant de choisir.
Comportement de la passerelle
La passerelle normalise quelques éléments au passage. Ils ne figurent pas dans les spécifications amont et vous surprendront lors du débogage d'une réponse :
| Comportement | S'applique à | Détail |
|---|---|---|
| Statistiques d'usage forcées | Requêtes en streaming | stream_options.include_usage est défini sur true, donc un dernier chunk d'usage arrive toujours |
| Prompt système par défaut | Chat Completions, Messages, Responses | Si vous n'envoyez aucun prompt système, "You are a helpful assistant." est inséré |
max_completion_tokens réécrit | Chat Completions | Converti en max_tokens |
| Indicateurs de raisonnement normalisés | Chat Completions | enable_thinking, thinking.type et reasoning_effort: "none" sont unifiés |
| Commentaires keep-alive | Streaming | Les flux inactifs émettent des lignes de commentaire SSE commençant par :. Les clients doivent les ignorer |
| Limite du corps de requête | Tous les points de terminaison | 50 Mo. Les charges plus grandes renvoient 413 — utilisez une URL ou téléversez le fichier |
Non disponible
Ces points de terminaison n'existent pas sur Atlas Cloud. Les requêtes vers eux ne fonctionneront pas, quel que soit le modèle :
/v1/embeddings/v1/rerank/v1/audio/speechet/v1/audio/transcriptions— l'audio passe par le point de terminaison audio/v1/messages/count_tokens
Des fournisseurs tels qu'Ollama, Cohere et Bedrock ne sont pas exposés comme protocoles natifs. Les modèles de nombreux éditeurs sont disponibles, mais toujours via l'un des six formats ci-dessus.
Limites de débit et erreurs
Les limites de débit s'appliquent par compte et par modèle. Lorsque vous en dépassez une, l'API renvoie 429.
Les points de terminaison LLM ne renvoient pas d'en-têtes X-RateLimit-*, et les réponses 429 sur ces points de terminaison ne comportent pas de Retry-After. Implémentez un backoff exponentiel côté client plutôt que de vous fier aux en-têtes de réponse.
Chaque réponse porte un en-tête X-Request-ID. Incluez-le lorsque vous contactez le support.
Voir aussi
Last updated on
Comment fonctionne Atlas Cloud
Comprendre comment Atlas Cloud vous connecte à plus de 400 modèles d'IA via une API unifiée
SDK et bibliothèques clientes
Utilisez le SDK OpenAI, Anthropic ou Google avec Atlas Cloud, plus des clients prêts à copier pour la génération d'images, de vidéos et d'audio en Python et Node.js.