LLM API プロトコル
Atlas Cloud は OpenAI Chat Completions、Completions、Responses、Images、Anthropic Messages、Google Gemini に対応。キー 1 つ、ベース URL 1 つで 6 つのワイヤーフォーマットを扱えます。
Atlas Cloud は、同じベース URL と同じ API キーで 6 種類のリクエスト形式を受け付けます。既存の SDK の向き先を Atlas Cloud に変えるだけで、たいていはそのまま動作します — 書き換えも独自のアダプタ層も不要です。
https://api.atlascloud.aiプロトコル一覧
| プロトコル | エンドポイント | こんなときに使う |
|---|---|---|
| OpenAI Chat Completions | POST /v1/chat/completions | 標準の選択肢。対応モデルが最も多い |
| OpenAI Completions | POST /v1/completions | レガシーなテキスト補完。対応モデルはごくわずか |
| OpenAI Responses | POST /v1/responses | すでに Responses API を使っている場合 |
| OpenAI Images | POST /v1/images/generations、/v1/images/edits | OpenAI クライアントから同期的に画像を呼び出す場合 |
| Anthropic Messages | POST /v1/messages | すでに Anthropic SDK や Claude Code を使っている場合 |
| Google Gemini | POST /v1beta/models/{model}:generateContent | すでに Google GenAI SDK を使っている場合 |
すべてのモデルがすべてのプロトコルに対応しているわけではありません。各モデルは supported_apis のリストを公開しているので、形式を切り替える前に確認してください。リストは順序付きで、先頭がそのモデルの推奨プロトコルです。たとえば Gemini 系のモデルは、マルチモーダル機能をフルに使えるのはネイティブの Gemini 形式だけです。
認証
API キーは 4 種類のヘッダー形式のいずれでも利用できるため、他プロバイダー向けに作られた SDK でも変更なしで認証できます:
-H "Authorization: Bearer $ATLASCLOUD_API_KEY"推奨。すべてのプロトコルで利用できます。
Atlas Cloud の API キーは apikey- で始まります。API キー をご覧ください。
OpenAI Chat Completions
最も広くサポートされている形式です。
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
}'OpenAI SDK を使う場合 — 変更するのは 2 行だけです:
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)サンプリングパラメータ。 対応状況はモデルごとに異なり、各モデルが独自の supported_sampling_parameters を公開しています。一般的に利用できるもの: 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)。
構造化出力。 json_mode または structured_outputs を公開しているモデルでは、response_format に {"type": "json_object"} と json_schema 定義の両方を指定できます。
ツール呼び出し。 tools を公開しているモデルでは、tools、tool_choice、parallel_tool_calls がそのまま渡されます。
マルチモーダル入力。 画像、動画、音声をコンテンツパートとして添付できます:
{
"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 は OpenAI の仕様を拡張した Atlas Cloud 独自の機能です。音声はインラインの Base64 である必要があり、input_audio に URL は指定できません。
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"}]
}'Anthropic SDK の base_url を https://api.atlascloud.ai に設定すれば、Atlas Cloud に向けられます。
サポート対象。 system(文字列またはブロック配列)、stop_sequences、input_schema 付きの tools、tool_choice、thinking、画像ブロック(base64 と url の両方のソース)、document ブロック、tool_result。アシスタントの thinking ブロックは推論出力にマッピングされます。
知っておくべき差異:
| 挙動 | 詳細 |
|---|---|
stop_sequences | 先頭 4 件に切り詰められます |
tool_choice: "any" | required にマッピングされます |
cache_control | 対象モデルが変換されたプロトコル経由で提供される場合は無視されるため、プロンプトキャッシュは適用されません |
| 組み込みサーバーツール | Web 検索、コンピュータ操作など、Anthropic がホストするツールは利用できません |
POST /v1/messages/count_tokens | 未実装です |
| マルチモーダル | 画像のみ。 このプロトコルでは動画と音声のパートは受け付けません |
ストリーミング は Anthropic のイベント順序に従います: message_start、content_block_start、content_block_delta、content_block_stop、message_delta、message_stop。[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
}'サポート対象。 instructions、あらゆる形式の input、tools、tool_choice、reasoning.effort、text.format(json_object と json_schema の両方)、text.verbosity、temperature、top_p、stream、parallel_tool_calls。
警告なく無視されるもの — エラーにはならないものの効果がありません: previous_response_id、store、include、background、conversation、prompt、truncation、max_tool_calls、top_logprobs、reasoning.summary。metadata はそのまま返されますが、転送はされません。
previous_response_id と store が効かないため、サーバー側での会話状態の保持は利用できません。リクエストごとに会話全体を送信してください。
マルチモーダル。 画像と音声に対応。このプロトコルでは動画は使えません。画像は {"type": "input_image", "image_url": "<url string>"} の形式で指定します — 値がオブジェクトではなく単純な文字列である点に注意してください。
ストリーミング は標準の Responses イベントセットを送出し、response.completed、response.incomplete、response.failed のいずれかで終了します。[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 が必須です。これがないとリクエストは 404 を返します。
サポート対象。 user と model ロールを含む contents[]、systemInstruction、generationConfig、tools。
マルチモーダル。 画像、動画、音声に対応 — inline_data によるインライン指定、または file_data.file_uri による参照指定が使えます。
このプロトコルは、ネイティブに対応しているモデルでのみ提供されます。識別子に nano、banana、omni を含むモデルはここでは拒否されるため、Chat Completions またはメディア生成エンドポイントを使ってください。
OpenAI Images
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 は multipart/form-data を受け付けます。このプロトコルを公開しているモデルはごく一部です。
これはメインの画像パイプラインとは別の経路です。ほとんどの画像モデル、そしてすべての動画・音声・3D モデルは、予測 で説明する非同期エンドポイントを使います。選ぶ前にモデルの supported_apis を確認してください。
ゲートウェイの挙動
ゲートウェイは通過時にいくつかの正規化を行います。これらは上流の仕様には存在しないため、レスポンスをデバッグしていると戸惑うかもしれません:
| 挙動 | 対象 | 詳細 |
|---|---|---|
| 使用量統計を強制的に有効化 | ストリーミングリクエスト | stream_options.include_usage が true に設定され、最後に必ず使用量チャンクが届きます |
| デフォルトのシステムプロンプト | Chat Completions、Messages、Responses | システムプロンプトを送らない場合、"You are a helpful assistant." が挿入されます |
max_completion_tokens の書き換え | Chat Completions | max_tokens に変換されます |
| 推論フラグの正規化 | Chat Completions | enable_thinking、thinking.type、reasoning_effort: "none" が統一されます |
| キープアライブコメント | ストリーミング | アイドル状態のストリームは : で始まる SSE コメント行を送出します。クライアントはこれを無視する必要があります |
| リクエストボディの上限 | すべてのエンドポイント | 50 MB。これを超えると 413 が返るので、URL を使うか ファイルをアップロード してください |
利用できないもの
以下のエンドポイントは Atlas Cloud には存在しません。どのモデルを指定してもリクエストは通りません:
/v1/embeddings/v1/rerank/v1/audio/speechと/v1/audio/transcriptions— 音声は 音声エンドポイント を経由します/v1/messages/count_tokens
Ollama、Cohere、Bedrock などのプロバイダーは、ネイティブプロトコルとしては提供していません。多数のベンダーのモデルを利用できますが、必ず上記 6 形式のいずれかを経由します。
レート制限とエラー
レート制限はアカウント単位およびモデル単位で適用されます。上限を超えると API は 429 を返します。
LLM エンドポイントは X-RateLimit-* ヘッダーを 返しません。またこれらのエンドポイントの 429 レスポンスに Retry-After は含まれません。レスポンスヘッダーに頼らず、クライアント側で指数バックオフを実装してください。
すべてのレスポンスには X-Request-ID ヘッダーが付きます。サポートに問い合わせる際は、この値を添えてください。
関連ドキュメント
Last updated on