Protokol LLM API

Atlas Cloud memahami OpenAI Chat Completions, Completions, Responses, Images, Anthropic Messages, dan Google Gemini. Satu key, satu base URL, enam format.

Atlas Cloud menerima enam format permintaan yang berbeda pada base URL yang sama dengan API key yang sama. Arahkan SDK yang sudah Anda pakai ke Atlas Cloud dan umumnya SDK tersebut langsung bekerja tanpa perubahan — tanpa menulis ulang kode, tanpa lapisan adaptor buatan sendiri.

https://api.atlascloud.ai

Matriks protokol

ProtokolEndpointGunakan bila
OpenAI Chat CompletionsPOST /v1/chat/completionsPilihan bawaan. Cakupan model paling luas
OpenAI CompletionsPOST /v1/completionsText completion lama. Hanya sedikit model yang mendukungnya
OpenAI ResponsesPOST /v1/responsesAnda sudah memakai Responses API
OpenAI ImagesPOST /v1/images/generations, /v1/images/editsPanggilan gambar sinkron melalui klien OpenAI
Anthropic MessagesPOST /v1/messagesAnda sudah memakai Anthropic SDK atau Claude Code
Google GeminiPOST /v1beta/models/{model}:generateContentAnda sudah memakai Google GenAI SDK

Tidak semua model memahami semua protokol. Setiap model menerbitkan daftar supported_apis — periksa daftar tersebut sebelum berpindah format. Daftar ini berurutan: entri pertama adalah pilihan yang direkomendasikan untuk model tersebut. Model keluarga Gemini, misalnya, hanya membuka kemampuan multimodal penuhnya pada format Gemini native.

Autentikasi

API key Anda bekerja dengan salah satu dari empat gaya header, sehingga SDK yang dibuat untuk penyedia lain dapat melakukan autentikasi tanpa modifikasi:

-H "Authorization: Bearer $ATLASCLOUD_API_KEY"

Direkomendasikan, dan bekerja pada semua protokol.

API key Atlas Cloud diawali dengan apikey-. Lihat API Key.

OpenAI Chat Completions

Format yang paling luas didukung.

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
  }'

Menggunakan OpenAI SDK — cukup ubah dua baris:

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)

Parameter sampling. Dukungannya berbeda-beda tiap model — setiap model menerbitkan daftar supported_sampling_parameters miliknya sendiri. Yang umum tersedia: 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).

Keluaran terstruktur. response_format menerima baik {"type": "json_object"} maupun definisi json_schema, pada model yang mengumumkan json_mode atau structured_outputs.

Pemanggilan tool. tools, tool_choice, dan parallel_tool_calls diteruskan pada model yang mengumumkan tools.

Masukan multimodal. Gambar, video, dan audio dapat dilampirkan sebagai bagian konten:

{
  "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 adalah ekstensi Atlas Cloud di luar spesifikasi OpenAI. Audio harus dikirim sebagai Base64 sebaris — URL tidak diterima untuk 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"}]
  }'

Arahkan Anthropic SDK ke Atlas Cloud dengan menetapkan base_url menjadi https://api.atlascloud.ai.

Didukung. system (string atau larik blok), stop_sequences, tools dengan input_schema, tool_choice, thinking, blok gambar (sumber base64 maupun url), blok document, dan tool_result. Blok thinking dari asisten dipetakan ke keluaran penalaran.

Perbedaan yang perlu diketahui:

PerilakuDetail
stop_sequencesDipotong hingga 4 entri pertama
tool_choice: "any"Dipetakan menjadi required
cache_controlDiabaikan ketika model tujuan dilayani melalui protokol terjemahan, sehingga prompt caching tidak berlaku
Tool server bawaanWeb search, computer use, dan tool sejenis yang dihosting Anthropic tidak tersedia
POST /v1/messages/count_tokensTidak diimplementasikan
MultimodalHanya gambar. Bagian video dan audio tidak diterima pada protokol ini

Streaming mengikuti urutan event Anthropic: message_start, content_block_start, content_block_delta, content_block_stop, message_delta, message_stop. Tidak ada penanda [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
  }'

Didukung. instructions, input dalam segala bentuknya, tools, tool_choice, reasoning.effort, text.format (baik json_object maupun json_schema), text.verbosity, temperature, top_p, stream, parallel_tool_calls.

Diabaikan tanpa peringatan — diterima tanpa error tetapi tidak berpengaruh: previous_response_id, store, include, background, conversation, prompt, truncation, max_tool_calls, top_logprobs, dan reasoning.summary. metadata dikembalikan kembali dalam respons tetapi tidak diteruskan.

Karena previous_response_id dan store tidak berpengaruh, status percakapan di sisi server tidak tersedia. Kirimkan percakapan lengkap pada setiap permintaan.

Multimodal. Gambar dan audio. Tidak ada video pada protokol ini. Gambar memakai {"type": "input_image", "image_url": "<url string>"} — perhatikan bahwa nilainya berupa string biasa, bukan objek.

Streaming memancarkan kumpulan event Responses standar dan berakhir dengan response.completed, response.incomplete, atau response.failed. Tidak ada penanda [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 wajib disertakan untuk streaming. Tanpa parameter tersebut, permintaan akan mengembalikan 404.

Didukung. contents[] dengan peran user dan model, systemInstruction, generationConfig, dan tools.

Multimodal. Gambar, video, dan audio — secara sebaris melalui inline_data, atau lewat rujukan dengan file_data.file_uri.

Protokol ini hanya dilayani oleh model yang memang memahaminya secara native. Model yang identifikasinya memuat nano, banana, atau omni akan ditolak di sini; gunakan Chat Completions atau endpoint pembuatan media untuk model tersebut.

OpenAI Images

Pembuatan gambar sinkron untuk klien yang kompatibel dengan 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 menerima multipart/form-data. Hanya sedikit model yang mengumumkan dukungan protokol ini.

Jalur ini berbeda dari pipeline gambar utama. Sebagian besar model gambar — dan seluruh model video, audio, serta 3D — memakai endpoint asinkron yang dijelaskan di Prediksi. Periksa supported_apis sebuah model sebelum memilih.

Perilaku gateway

Gateway menormalkan beberapa hal saat permintaan melewatinya. Hal-hal ini tidak ada dalam spesifikasi aslinya dan bisa mengejutkan Anda saat menelusuri sebuah respons:

PerilakuBerlaku untukDetail
Statistik penggunaan dipaksa aktifPermintaan streamingstream_options.include_usage diatur menjadi true, sehingga chunk usage terakhir selalu dikirim
System prompt bawaanChat Completions, Messages, ResponsesJika Anda tidak mengirim system prompt, "You are a helpful assistant." akan disisipkan
max_completion_tokens ditulis ulangChat CompletionsDikonversi menjadi max_tokens
Flag penalaran dinormalkanChat Completionsenable_thinking, thinking.type, dan reasoning_effort: "none" diseragamkan
Komentar keep-aliveStreamingStream yang menganggur mengirim baris komentar SSE yang diawali :. Klien wajib mengabaikannya
Batas body permintaanSemua endpoint50 MB. Payload yang lebih besar mengembalikan 413 — gunakan URL atau unggah berkasnya

Tidak tersedia

Endpoint berikut tidak ada di Atlas Cloud. Permintaan ke endpoint ini tidak akan bekerja, model apa pun yang dipakai:

  • /v1/embeddings
  • /v1/rerank
  • /v1/audio/speech dan /v1/audio/transcriptions — audio melewati endpoint audio
  • /v1/messages/count_tokens

Penyedia seperti Ollama, Cohere, dan Bedrock tidak dibuka sebagai protokol native. Model dari berbagai vendor tersedia, tetapi selalu melalui salah satu dari enam format di atas.

Batas laju dan error

Batas laju berlaku per akun dan per model. Ketika Anda melampauinya, API mengembalikan 429.

Endpoint LLM tidak mengembalikan header X-RateLimit-*, dan respons 429 pada endpoint ini tidak membawa Retry-After. Terapkan exponential backoff di sisi klien alih-alih mengandalkan header respons.

Setiap respons membawa header X-Request-ID. Sertakan header tersebut saat menghubungi dukungan.

Terkait

Last updated on

On this page