Model Gateway · api.xiaxie.cc
小说 App 用的模型接口,
一个地址接完。
瞎写 App 的写作请求都从这里走。接口按 OpenAI 的格式来,后端自己按顺序挑一家还能用的模型—— 上游是谁、换了哪家、哪天限流了,客户端都不用管。
BASE_URL
https://api.xiaxie.cc/v1
接口地址固定不变;上游供应商的增减只影响后台,不需要改客户端代码。
01
三步接上
1. 把 base_url 指向上面的地址;2. 把管理后台发的 sk-gw-… 作为 API Key;3. 模型填 auto。
curl https://api.xiaxie.cc/v1/chat/completions \
-H "Authorization: Bearer sk-gw-你的Key" \
-H "Content-Type: application/json" \
-d '{
"model": "auto",
"messages": [{"role": "user", "content": "写一段武侠开场"}],
"stream": true
}'
from openai import OpenAI
client = OpenAI(
base_url="https://api.xiaxie.cc/v1",
api_key="sk-gw-你的Key",
)
stream = client.chat.completions.create(
model="auto",
messages=[{"role": "user", "content": "写一段武侠开场"}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="")
const res = await fetch("https://api.xiaxie.cc/v1/chat/completions", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer sk-gw-你的Key",
},
body: JSON.stringify({
model: "auto",
messages: [{ role: "user", content: "写一段武侠开场" }],
stream: true,
}),
});
// 逐段读取 SSE:每行形如 data: {"choices":[{"delta":{"content":"…"}}]}
const reader = res.body.getReader();
02
模型怎么写
| model | 含义 |
|---|---|
auto | 自动选当前可用的一家。日常用这个就够了。 |
deepseek-chat | 指定 DeepSeek 对话模型(若后台已配置)。 |
qwen-plus | 指定阿里百炼 Qwen-Plus(若后台已配置)。 |
供应商/模型名 | 形如 groq/llama-3.3-70b,强制走指定供应商。 |
实时清单以 GET /v1/models 为准,具体能调通哪些取决于后台「供应商」页里填了哪些 Key。
03
出错了看这里
| 状态码 | 原因 | 怎么办 |
|---|---|---|
401 | Key 无效、过期或已被吊销。 | 找管理员重新发一个。 |
429 | 超过这个 Key 的每分钟次数或当日 token 额度。 | 等一会儿,或让管理员调高额度。 |
502 | 上游几家都挂了(网络、限流、Key 失效)。 | 重试;持续出现说明后台该补 Key 了。 |
503 | 后台还没有任何可用上游。 | 管理员去「供应商」页配置。 |
04
服务状态
正在检测…
本页直接请求 /healthz,看到的不是写死的文案。接口只会转发,不记录你的对话内容。
05
要一个 Key
这个服务不对外开放注册。虚拟 Key 由管理员在后台发放,一把 Key 对应一个 App 或一个会话, 额度、限速、过期时间都能单独设。