公司的 AI 接口都从这里走:一个地址、一个 Key,能调多家大模型。写法和 OpenAI 官方接口一样,原来的程序只改地址和 Key 就能用。
https://api.snkxd.xn--fiqs8s/v1。如果软件提示地址里不要带 /v1,就填 https://api.snkxd.xn--fiqs8s。sk-snk-…。req_…)发给管理员。| 模型名 | 支持的调用格式 |
|---|---|
| 现在还没有开放的模型,请联系管理员。 | |
GET https://api.snkxd.xn--fiqs8s/v1/models(写法见第 5 节)。sk-snk-你的Key 换成自己的 Keyfrom openai import OpenAI
client = OpenAI(base_url="https://api.snkxd.xn--fiqs8s/v1", api_key="sk-snk-你的Key")
r = client.chat.completions.create(
model="模型名",
messages=[
{"role": "system", "content": "你是公司的助理,回答要简短。"},
{"role": "user", "content": "你好,介绍一下你自己"},
],
)
print(r.choices[0].message.content)先装 OpenAI 官方的包:pip install openai。用别的语言也一样,只要支持「OpenAI 格式」,改地址和 Key 就行。
from openai import OpenAI
client = OpenAI(base_url="https://api.snkxd.xn--fiqs8s/v1", api_key="sk-snk-你的Key")
stream = client.chat.completions.create(
model="模型名",
messages=[{"role": "user", "content": "写一篇 500 字的产品介绍"}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)回复很长(写文章、写代码)时建议用流式:字是一段一段出来的,不容易超时。
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.snkxd.xn--fiqs8s/v1", apiKey: "sk-snk-你的Key" });
const r = await client.chat.completions.create({
model: "模型名",
messages: [{ role: "user", content: "你好" }],
});
console.log(r.choices[0].message.content);先装包:npm install openai。
curl https://api.snkxd.xn--fiqs8s/v1/chat/completions \
-H "Authorization: Bearer sk-snk-你的Key" \
-H "Content-Type: application/json" \
-d '{"model": "模型名", "messages": [{"role": "user", "content": "你好"}]}'| 参数 | 说明 |
|---|---|
| model | 必填。模型名,见第 2 节。 |
| messages | 必填。对话内容,role 可以是 system(给模型的规则)、user(你说的)、assistant(模型之前说的)。 |
| stream | 填 true 就一段一段返回(流式)。长回复建议打开。 |
| max_tokens | 最多输出多少 token。不填时网关默认最多 8192;回复被截断(finish_reason 是 length)就调大一点。 |
| temperature | 0–2,越小越稳定、越大越发散。做提取、分类用 0–0.3。 |
1106。单次请求内容最大 20 MB。Authorization: Bearer sk-snk-…| 接口 | 用来干什么 |
|---|---|
| GET /v1/models | 你的 Key 能用哪些模型 |
| GET /v1/account/balance | 余额、额度还剩多少 |
| GET /v1/account/usage?from=2026-10-01&to=2026-10-30 | 每天调用了多少次、用了多少 token、花了多少(不填日期 = 最近 7 天) |
| GET /v1/account/requests/req_… | 某一次调用的结果:成功没有、用了多少、扣了多少 |
curl https://api.snkxd.xn--fiqs8s/v1/account/balance -H "Authorization: Bearer sk-snk-你的Key" curl "https://api.snkxd.xn--fiqs8s/v1/account/usage?from=2026-10-01&to=2026-10-30" -H "Authorization: Bearer sk-snk-你的Key"
{
"error": {
"message": "这个 Key 没有开通模型 xxx",
"type": "permission_error",
"code": "1101",
"request_id": "req_8f3a…"
}
}每次返回的响应头里也有 X-Request-Id。找管理员时把请求编号发过去,他在后台一查就知道哪里出了问题。
| 错误码 | HTTP | 意思 | 谁来处理 |
|---|---|---|---|
| 1001 | 401 | 没有带 API Key(请求头 Authorization: Bearer sk-snk-...) | 自己请求头加上 Authorization: Bearer 你的 Key |
| 1002 | 401 | API Key 无效 | 自己检查 Key 有没有抄错、多了空格 |
| 1003 | 403 | 这个 API Key 已停用 | 管理员Key 被停用或删除了,找管理员 |
| 1004 | 403 | 这个 API Key 已过期 | 管理员Key 过期了,找管理员延期 |
| 1005 | 403 | 调用来源 IP 不在这个 Key 的白名单里 | 管理员换到允许的网络,或找管理员加 IP |
| 1006 | 403 | 所属账户已停用,请联系管理员 | 管理员账户被停用了,找管理员 |
| 1101 | 403 | 这个 Key 没有开通该模型 | 管理员找管理员给你的 Key 开通这个模型 |
| 1102 | 404 | 没有这个模型 | 自己检查模型名,照第 2 节一字不差地抄 |
| 1103 | 400 | 请求格式不对 | 自己检查请求格式(JSON、model、messages 字段) |
| 1104 | 400 | 该模型还没有定价,暂时不能调用,请联系管理员 | 管理员找管理员给这个模型定价 |
| 1105 | 413 | 请求内容太大 | 自己内容太长了,拆开分几次发 |
| 1106 | 400 | 网关暂不支持联网搜索等按次收费的功能 | 自己去掉联网搜索这类按次收费的参数 |
| 1107 | 403 | 这个模型已被管理员暂停使用 | 管理员模型被暂停了,换一个模型或问管理员 |
| 1201 | 402 | 余额不足,请充值后重试 | 管理员余额不足,找管理员充值 |
| 1202 | 402 | 这个 Key 的额度已用完 | 管理员Key 的额度用完了,找管理员加额度 |
| 1203 | 402 | 本月预算已用完 | 管理员本月预算用完了,找管理员调预算 |
| 1301 | 429 | 请求太频繁,请稍后再试 | 自己调慢一点;确实需要就找管理员调高每分钟上限 |
| 1401 | 499 | 客户端中途断开(已按实际输出计费) | 自己请求还没收完就断开了,检查程序的超时设置 |
| 2001 | 503 | 服务繁忙(暂时没有可用的上游通道),请稍后重试 | 供应商暂时没有可用通道,稍后重试;一直不行找管理员 |
| 2002 | 502 | 服务繁忙(上游全部失败),请稍后重试 | 供应商上游都失败了,稍后重试 |
| 2003 | 504 | 上游响应超时,请稍后重试 | 供应商上游太慢超时了,长回复改用流式 |
| 2004 | 502 | 输出中途中断 | 供应商输出到一半断了,重试一次 |
| 2101 | 400 | 上游拒绝了这个请求 | 自己上游说请求有问题,多半是参数不对,看报错原文 |
| 9001 | 500 | 网关内部错误 | 管理员把请求编号发给管理员 |