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.aiMatriks protokol
| Protokol | Endpoint | Gunakan bila |
|---|---|---|
| OpenAI Chat Completions | POST /v1/chat/completions | Pilihan bawaan. Cakupan model paling luas |
| OpenAI Completions | POST /v1/completions | Text completion lama. Hanya sedikit model yang mendukungnya |
| OpenAI Responses | POST /v1/responses | Anda sudah memakai Responses API |
| OpenAI Images | POST /v1/images/generations, /v1/images/edits | Panggilan gambar sinkron melalui klien OpenAI |
| Anthropic Messages | POST /v1/messages | Anda sudah memakai Anthropic SDK atau Claude Code |
| Google Gemini | POST /v1beta/models/{model}:generateContent | Anda 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:
| Perilaku | Detail |
|---|---|
stop_sequences | Dipotong hingga 4 entri pertama |
tool_choice: "any" | Dipetakan menjadi required |
cache_control | Diabaikan ketika model tujuan dilayani melalui protokol terjemahan, sehingga prompt caching tidak berlaku |
| Tool server bawaan | Web search, computer use, dan tool sejenis yang dihosting Anthropic tidak tersedia |
POST /v1/messages/count_tokens | Tidak diimplementasikan |
| Multimodal | Hanya 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:
| Perilaku | Berlaku untuk | Detail |
|---|---|---|
| Statistik penggunaan dipaksa aktif | Permintaan streaming | stream_options.include_usage diatur menjadi true, sehingga chunk usage terakhir selalu dikirim |
| System prompt bawaan | Chat Completions, Messages, Responses | Jika Anda tidak mengirim system prompt, "You are a helpful assistant." akan disisipkan |
max_completion_tokens ditulis ulang | Chat Completions | Dikonversi menjadi max_tokens |
| Flag penalaran dinormalkan | Chat Completions | enable_thinking, thinking.type, dan reasoning_effort: "none" diseragamkan |
| Komentar keep-alive | Streaming | Stream yang menganggur mengirim baris komentar SSE yang diawali :. Klien wajib mengabaikannya |
| Batas body permintaan | Semua endpoint | 50 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/speechdan/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