Protocolos de API para LLM
Atlas Cloud habla OpenAI Chat Completions, Completions, Responses, Images, Anthropic Messages y Google Gemini. Una clave, una base URL, seis formatos de transporte.
Atlas Cloud acepta seis formatos de solicitud distintos en la misma base URL y con la misma clave de API. Apunta un SDK existente a Atlas Cloud y por lo general funciona sin cambios — sin reescrituras ni capas de adaptación propias.
https://api.atlascloud.aiMatriz de protocolos
| Protocolo | Endpoint | Úsalo cuando |
|---|---|---|
| OpenAI Chat Completions | POST /v1/chat/completions | Opción predeterminada. La mayor cobertura de modelos |
| OpenAI Completions | POST /v1/completions | Completado de texto heredado. Pocos modelos lo admiten |
| OpenAI Responses | POST /v1/responses | Ya usas la API Responses |
| OpenAI Images | POST /v1/images/generations, /v1/images/edits | Llamadas de imagen síncronas mediante un cliente de OpenAI |
| Anthropic Messages | POST /v1/messages | Ya usas el SDK de Anthropic o Claude Code |
| Google Gemini | POST /v1beta/models/{model}:generateContent | Ya usas el SDK de Google GenAI |
No todos los modelos hablan todos los protocolos. Cada modelo publica una lista supported_apis — revísala antes de cambiar de formato. La lista está ordenada: la primera entrada es la recomendada para ese modelo. Los modelos de la familia Gemini, por ejemplo, exponen toda su capacidad multimodal solo en el formato nativo de Gemini.
Autenticación
Tu clave de API funciona con cualquiera de los cuatro estilos de encabezado, de modo que los SDK creados para otros proveedores se autentican sin modificaciones:
-H "Authorization: Bearer $ATLASCLOUD_API_KEY"Recomendado, y funciona con todos los protocolos.
Las claves de API de Atlas Cloud empiezan por apikey-. Consulta Claves API.
OpenAI Chat Completions
El formato con mayor compatibilidad.
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
}'Con el SDK de OpenAI — cambia dos líneas:
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)Parámetros de muestreo. La compatibilidad varía según el modelo — cada uno publica sus propios supported_sampling_parameters. Disponibles habitualmente: 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).
Salida estructurada. response_format acepta tanto {"type": "json_object"} como una definición json_schema, en los modelos que anuncian json_mode o structured_outputs.
Llamada a herramientas. tools, tool_choice y parallel_tool_calls se transmiten en los modelos que anuncian tools.
Entrada multimodal. Las imágenes, el video y el audio pueden adjuntarse como partes de contenido:
{
"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 es una extensión de Atlas Cloud más allá de la especificación de OpenAI. El audio debe ir en Base64 en línea — no se acepta una URL en 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"}]
}'Apunta el SDK de Anthropic a Atlas Cloud definiendo base_url como https://api.atlascloud.ai.
Compatible. system (cadena o array de bloques), stop_sequences, tools con input_schema, tool_choice, thinking, bloques de imagen (fuentes base64 y url), bloques document y tool_result. Los bloques thinking del asistente se corresponden con la salida de razonamiento.
Diferencias que conviene conocer:
| Comportamiento | Detalle |
|---|---|
stop_sequences | Se trunca a las primeras 4 entradas |
tool_choice: "any" | Se traduce a required |
cache_control | Se ignora cuando el modelo de destino se sirve mediante un protocolo traducido, por lo que el caché de prompts no se aplica |
| Herramientas de servidor integradas | Las herramientas alojadas por Anthropic, como búsqueda web o uso del ordenador, no están disponibles |
POST /v1/messages/count_tokens | No implementado |
| Multimodal | Solo imágenes. Este protocolo no acepta partes de video ni de audio |
El streaming sigue la secuencia de eventos de Anthropic: message_start, content_block_start, content_block_delta, content_block_stop, message_delta, message_stop. No hay centinela [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
}'Compatible. instructions, input en todas sus formas, tools, tool_choice, reasoning.effort, text.format (tanto json_object como json_schema), text.verbosity, temperature, top_p, stream, parallel_tool_calls.
Ignorados en silencio — se aceptan sin error pero no tienen efecto: previous_response_id, store, include, background, conversation, prompt, truncation, max_tool_calls, top_logprobs y reasoning.summary. metadata se devuelve en la respuesta, pero no se reenvía.
Como previous_response_id y store no tienen efecto, no hay estado de conversación en el servidor. Envía la conversación completa en cada solicitud.
Multimodal. Imágenes y audio. Este protocolo no admite video. Las imágenes usan {"type": "input_image", "image_url": "<url string>"} — fíjate en que el valor es una cadena simple, no un objeto.
El streaming emite el conjunto estándar de eventos de Responses y termina con response.completed, response.incomplete o response.failed. No hay centinela [DONE].
Google Gemini
# Sin 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 — el parámetro alt=sse es obligatorio
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 es obligatorio para el streaming. Sin él, la solicitud devuelve 404.
Compatible. contents[] con los roles user y model, systemInstruction, generationConfig y tools.
Multimodal. Imágenes, video y audio — en línea con inline_data, o por referencia con file_data.file_uri.
Este protocolo solo lo sirven los modelos que lo hablan de forma nativa. Los modelos cuyo identificador contiene nano, banana u omni se rechazan aquí; usa en su lugar Chat Completions o los endpoints de generación de medios.
OpenAI Images
Generación de imágenes síncrona para clientes compatibles con 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 acepta multipart/form-data. Solo un pequeño número de modelos anuncia este protocolo.
Esta es una ruta distinta de la del pipeline principal de imagen. La mayoría de los modelos de imagen — y todos los de video, audio y 3D — usan los endpoints asíncronos descritos en Predicciones. Revisa el supported_apis de un modelo antes de elegir.
Comportamiento de la pasarela
La pasarela normaliza algunas cosas por el camino. No están en las especificaciones originales y te sorprenderán si estás depurando una respuesta:
| Comportamiento | Se aplica a | Detalle |
|---|---|---|
| Estadísticas de uso forzadas | Solicitudes en streaming | stream_options.include_usage se define como true, así que siempre llega un fragmento final de uso |
| Prompt de sistema predeterminado | Chat Completions, Messages, Responses | Si no envías ningún prompt de sistema, se inserta "You are a helpful assistant." |
max_completion_tokens reescrito | Chat Completions | Se convierte en max_tokens |
| Indicadores de razonamiento normalizados | Chat Completions | enable_thinking, thinking.type y reasoning_effort: "none" se unifican |
| Comentarios de keep-alive | Streaming | Los streams inactivos emiten líneas de comentario SSE que empiezan por :. Los clientes deben ignorarlas |
| Límite del cuerpo de la solicitud | Todos los endpoints | 50 MB. Las cargas mayores devuelven 413 — usa una URL o sube el archivo |
No disponible
Estos endpoints no existen en Atlas Cloud. Las solicitudes a ellos no funcionarán, sea cual sea el modelo:
/v1/embeddings/v1/rerank/v1/audio/speechy/v1/audio/transcriptions— el audio pasa por el endpoint de audio/v1/messages/count_tokens
Proveedores como Ollama, Cohere y Bedrock no se exponen como protocolos nativos. Hay modelos de muchos fabricantes disponibles, pero siempre a través de uno de los seis formatos anteriores.
Límites de tasa y errores
Los límites de tasa se aplican por cuenta y por modelo. Cuando superas uno, la API devuelve 429.
Los endpoints de LLM no devuelven encabezados X-RateLimit-*, y las respuestas 429 de estos endpoints no llevan Retry-After. Implementa un backoff exponencial en el cliente en lugar de depender de los encabezados de respuesta.
Toda respuesta lleva un encabezado X-Request-ID. Inclúyelo cuando contactes con soporte.
Relacionado
Last updated on
Cómo funciona Atlas Cloud
Comprende cómo Atlas Cloud te conecta con más de 400 modelos de IA a través de una API unificada
SDK y bibliotecas cliente
Usa el SDK de OpenAI, Anthropic o Google contra Atlas Cloud, además de clientes listos para copiar y pegar para generación de imagen, video y audio en Python y Node.js.