一把密钥,OpenAI 兼容格式。图片与对话同步返回;视频先提交任务再轮询。单价以「模型价格」为准。
最后更新 2026-09-04
from openai import OpenAI client = OpenAI(base_url="https://a01.xuetianai.com/v1", api_key="sk-你的密钥")
所有请求带 Bearer。不要把密钥写进前端页面或 URL。
Authorization: Bearer sk-xxxxxxxx
泄露后立刻在令牌页删除并重建。Codex / GPT-5.x 目前暂停,请求会失败。
POST /v1/images/generations,同步返回。客户端超时请设 180 秒以上,过早断开服务端仍可能已经出图。
| 模型 | 计费 |
|---|---|
| gpt-image-2 / -1k / -4k | 按张 |
| grok-imagine-image* | 按张 |
curl https://a01.xuetianai.com/v1/images/generations \
-H "Authorization: Bearer sk-你的密钥" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-image-2-1k","prompt":"一只在雪地里奔跑的柴犬","size":"1024x1024"}'
成功时与 OpenAI Images 格式兼容,常见字段如下。
{
"created": 1756982400,
"data": [
{
"b64_json": null,
"url": "https://example.invalid/generated.png",
"revised_prompt": "一只在雪地里奔跑的柴犬"
}
]
}
POST /v1/chat/completions,支持 stream: true。模型:grok-4.5、grok-4.6、grok-chat-fast、grok-composer-2.5-fast,按 token 计费。
curl https://a01.xuetianai.com/v1/chat/completions \
-H "Authorization: Bearer sk-你的密钥" \
-H "Content-Type: application/json" \
-d '{"model":"grok-chat-fast","messages":[{"role":"user","content":"用一句话介绍柴犬"}]}'
不要把视频模型放到这个端点,上游会 400/404。
把 stream 设为 true,响应为 SSE(data: {...}),最后一行为 data: [DONE]。
curl https://a01.xuetianai.com/v1/chat/completions \
-H "Authorization: Bearer sk-你的密钥" \
-H "Content-Type: application/json" \
-N \
-d '{"model":"grok-chat-fast","stream":true,"messages":[{"role":"user","content":"用一句话介绍柴犬"}]}'
异步任务:POST /v1/videos 拿到任务 ID,再 GET /v1/videos/{task_id} 轮询。也可走 /v1/video/generations。不要用 /v1/videos/generations(404),也不要走聊天。
curl https://a01.xuetianai.com/v1/videos \
-H "Authorization: Bearer sk-你的密钥" \
-H "Content-Type: application/json" \
-d '{"model":"grok-imagine-video","prompt":"一只柴犬在雪地里跑,镜头跟随","seconds":"1"}'
import time, requests
BASE, H = "https://a01.xuetianai.com", {"Authorization": "Bearer sk-你的密钥"}
task = requests.post(f"{BASE}/v1/videos", headers=H, json={
"model": "grok-imagine-video",
"prompt": "海浪拍打礁石,黄昏,慢镜头",
"seconds": "1",
}).json()
tid = task.get("id") or task.get("task_id")
while True:
r = requests.get(f"{BASE}/v1/videos/{tid}", headers=H).json()
if r.get("status") in ("completed", "failed"):
print(r); break
time.sleep(5)
curl https://a01.xuetianai.com/v1/videos \
-H "Authorization: Bearer sk-你的密钥" \
-H "Content-Type: application/json" \
-d '{"model":"doubao-seedance-2-0-mini-260615","prompt":"海浪拍打礁石,黄昏,电影感","duration":4}'
GET /v1/models 返回当前可用模型列表。
curl https://a01.xuetianai.com/v1/models \ -H "Authorization: Bearer sk-你的密钥"
与 Python 一样,只改 baseURL 和密钥。
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://a01.xuetianai.com/v1",
apiKey: "sk-你的密钥",
});
const r = await client.chat.completions.create({
model: "grok-chat-fast",
messages: [{ role: "user", content: "用一句话介绍柴犬" }],
});
console.log(r.choices[0].message.content);
任意 OpenAI 兼容客户端都可以,关键是填对 base_url 和 api_key。
| HTTP | 含义 |
|---|---|
| 400 | 参数不合法,例如视频 seconds 不在 1–15 |
| 401 | 密钥无效或缺失 |
| 403 | 余额不足(含视频预扣不够)或无权 |
| 404 | 路径写错,或把视频模型丢进了聊天端点 |
| 429 / 5xx | 限流或上游异常,退避重试 |
排障请带上请求时间、模型名和返回错误。