SeaCloud Model API
Model API 按模型类型提供不同调用协议,多模态模型通常采用异步任务协议,创建任务后通过状态查询和结果获取完成调用;大语言模型通常采用同步或流式协议,在单次请求中直接返回文本或增量输出。
SeaCloud LLM API 面向对话补全、Anthropic Messages 和 Responses API 调用。公开入口统一使用 /llm 前缀,平台完成 API Key 鉴权、余额校验和请求追踪。
Base URL
Section titled “Base URL”https://cloud.seaart.ai/llm| 能力 | 方法 | 路径 | 说明 |
|---|---|---|---|
| OpenAI Chat | POST | /v1/chat/completions | OpenAI 兼容聊天补全 |
| OpenAI Responses | POST | /openai/v1/responses | Responses API 推荐公开路径 |
| Anthropic Messages | POST | /v1/messages、/anthropic/v1/messages | Claude/Anthropic 消息协议 |
基础配置 Base URL、鉴权、公共请求头和 SDK 配置。
Chat Completions OpenAI 兼容非流式聊天补全。
流式响应 Chat Completions 以 SSE 事件返回的流式响应。
Responses API 显式 OpenAI Responses API 公开路径和响应处理。
错误处理 常见错误响应、HTTP 状态码和客户端建议。
export BASE_URL="https://cloud.seaart.ai/llm"export API_KEY="YOUR_API_KEY"
curl -sS "${BASE_URL}/v1/chat/completions" \ -H "Authorization: Bearer ${API_KEY}" \ -H "Content-Type: application/json" \ -H "X-Request-Id: demo-$(date +%s)" \ -d '{ "model": "gpt-4.1", "messages": [ { "role": "user", "content": "用一句话介绍 SeaCloud LLM API" } ], "temperature": 0.7 }'from openai import OpenAI
client = OpenAI( api_key="YOUR_API_KEY", base_url="https://cloud.seaart.ai/llm/v1",)
response = client.chat.completions.create( model="gpt-4.1", messages=[ { "role": "user", "content": "用一句话介绍 SeaCloud LLM API", } ],)
print(response.choices[0].message.content)- 公开调用请使用完整路径,例如
/llm/v1/chat/completions、/llm/v1/messages、/llm/anthropic/v1/messages或/llm/openai/v1/responses - 响应结构保持对应接口协议格式
- 本文档只保留推荐公开调用路径
多模态模型采用异步队列协议:先创建任务,再轮询状态,任务完成后获取结果;如需中止执行,可发起取消请求。URL 中的 endpoint 直接使用 SeaCloud 模型 ID,请求体直接传模型参数对象。
生命周期文档
Section titled “生命周期文档” 基础配置 Base URL、鉴权、endpoint 和请求路径。
创建任务 创建多模态任务并保存后续查询所需字段。
模型调用示例 按模型类型提供可直接复制的请求体示例。
轮询状态 查询任务状态,判断等待、完成和失败。
获取结果 获取图片、视频、音频、3D、文本或文件输出。
取消任务 取消任务并理解取消相关状态。
错误处理与限制 常见错误、不支持能力和处理建议。
完整代码示例
Section titled “完整代码示例”export BASE_URL="https://cloud.seaart.ai/model"export ENDPOINT="nano_banana_2"export API_KEY="YOUR_API_KEY"
COMMON_HEADERS=( -H "Authorization: Key ${API_KEY}" -H "Content-Type: application/json")
SUBMIT_RESPONSE="$(curl -sS -X POST "${BASE_URL}/v1/queue/${ENDPOINT}" \ "${COMMON_HEADERS[@]}" \ -d '{ "prompt": "a cinematic photo of a cat astronaut" }')"
echo "${SUBMIT_RESPONSE}" | jq .
REQUEST_ID="$(echo "${SUBMIT_RESPONSE}" | jq -r '.request_id')"STATUS_URL="$(echo "${SUBMIT_RESPONSE}" | jq -r '.status_url')"RESPONSE_URL="$(echo "${SUBMIT_RESPONSE}" | jq -r '.response_url')"
while true; do STATUS_RESPONSE="$(curl -sS "${STATUS_URL}" "${COMMON_HEADERS[@]}")" echo "${STATUS_RESPONSE}" | jq .
STATUS="$(echo "${STATUS_RESPONSE}" | jq -r '.status')" ERROR="$(echo "${STATUS_RESPONSE}" | jq -r '.error // empty')"
if [ "${STATUS}" = "COMPLETED" ]; then if [ -n "${ERROR}" ]; then echo "task failed: ${ERROR}" exit 1 fi break fi
sleep 3done
curl -sS "${RESPONSE_URL}" "${COMMON_HEADERS[@]}" | jq .import timeimport requests
BASE_URL = "https://cloud.seaart.ai/model"ENDPOINT = "nano_banana_2"API_KEY = "YOUR_API_KEY"
headers = { "Authorization": f"Key {API_KEY}", "Content-Type": "application/json",}
submit_resp = requests.post( f"{BASE_URL}/v1/queue/{ENDPOINT}", headers=headers, json={ "prompt": "a cinematic photo of a cat astronaut", }, timeout=30,)submit_resp.raise_for_status()submit_body = submit_resp.json()
request_id = submit_body["request_id"]status_url = submit_body["status_url"]response_url = submit_body["response_url"]
while True: status_resp = requests.get(status_url, headers=headers, timeout=30) status_resp.raise_for_status() status_body = status_resp.json()
status = status_body["status"] if status == "COMPLETED": if "error" in status_body: raise RuntimeError(f"{status_body.get('error_type')}: {status_body['error']}") break
time.sleep(3)
result_resp = requests.get(response_url, headers=headers, timeout=30)result_resp.raise_for_status()result_body = result_resp.json()
print("request_id:", request_id)print("result:", result_body)