LLM API 协议

Atlas Cloud 同时支持 OpenAI Chat Completions、Completions、Responses、Images,以及 Anthropic Messages 和 Google Gemini。一个密钥、一个 Base URL、六种协议格式。

Atlas Cloud 在同一个 Base URL 上、用同一个 API Key 接受六种不同的请求格式。把现有 SDK 指向 Atlas Cloud,通常无需改动就能直接跑通——不用重写,也不用自己写适配层。

https://api.atlascloud.ai

协议一览

协议端点适用场景
OpenAI Chat CompletionsPOST /v1/chat/completions默认选择,模型覆盖面最广
OpenAI CompletionsPOST /v1/completions老式文本补全,支持的模型很少
OpenAI ResponsesPOST /v1/responses你已经在用 Responses API
OpenAI ImagesPOST /v1/images/generations、/v1/images/edits通过 OpenAI 客户端做同步图像调用
Anthropic MessagesPOST /v1/messages你已经在用 Anthropic SDK 或 Claude Code
Google GeminiPOST /v1beta/models/{model}:generateContent你已经在用 Google GenAI SDK

并不是每个模型都支持每种协议。每个模型都会公布一份 supported_apis 列表——切换格式前请先确认。该列表是有序的:第一项就是该模型的推荐协议。例如 Gemini 系列模型,只有在原生 Gemini 格式下才会暴露完整的多模态能力。

身份验证

你的 API Key 支持四种请求头写法,因此为其他厂商设计的 SDK 无需修改即可完成鉴权:

-H "Authorization: Bearer $ATLASCLOUD_API_KEY"

推荐写法,所有协议都适用。

Atlas Cloud API Key 以 apikey- 开头。参见 API Key。

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——只需改两行:

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 是 Atlas Cloud 在 OpenAI 规范之外的扩展。音频必须内联 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。Assistant 的 thinking 块会映射为推理输出。

需要注意的差异:

行为详情
stop_sequences截断为前 4 项
tool_choice: "any"映射为 required
cache_control当目标模型通过协议转换提供服务时会被忽略,因此提示词缓存不会生效
内置服务端工具网页搜索、computer use 等由 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,因此最后总会收到一个 usage 数据块
默认系统提示词Chat Completions、Messages、Responses如果你没有发送系统提示词,会自动插入 "You are a helpful assistant."
重写 max_completion_tokensChat Completions转换为 max_tokens
归一化推理开关Chat Completionsenable_thinking、thinking.type 和 reasoning_effort: "none" 会被统一处理
Keep-alive 注释流式请求空闲的流会发送以 : 开头的 SSE 注释行。客户端必须忽略它们
请求体大小限制所有端点50 MB。超出会返回 413——请改用 URL 或 先上传文件

不提供的能力

以下端点在 Atlas Cloud 上不存在,无论使用哪个模型,请求都不会成功:

  • /v1/embeddings
  • /v1/rerank
  • /v1/audio/speech 和 /v1/audio/transcriptions——音频请走 音频端点
  • /v1/messages/count_tokens

Ollama、Cohere、Bedrock 等厂商的原生协议不对外提供。平台上有来自众多厂商的模型,但一律通过上述六种格式访问。

限流与错误

限流按账户和模型分别生效。触发限流时,API 返回 429。

LLM 端点不会返回 X-RateLimit-* 响应头,这些端点的 429 响应也不带 Retry-After。请在客户端实现指数退避,而不要依赖响应头。

每个响应都带有 X-Request-ID 响应头。联系支持时请一并提供。

相关内容

Last updated on

On this page