SeaCloud Model API
Model API 按模型类型提供不同调用协议,多模态模型通常采用异步任务协议,创建任务后通过状态查询和结果获取完成调用;大语言模型通常采用同步或流式协议,在单次请求中直接返回文本或增量输出。
SeaCloud LLM API 面向对话补全、Anthropic Messages 和 Responses API 调用。公开入口统一使用 /llm 前缀,平台完成 API Key 鉴权、余额校验和请求追踪。
基础配置 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)多模态模型采用异步队列协议:先创建任务,再轮询状态,任务完成后获取结果;如需中止执行,可发起取消请求。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)