← 返回小鸣TV

API 中转站 · 技术文档

OpenAI 兼容 · 官方 5 折 · 多上游(通义 / MiniMax / 豆包)· 支持文生图

目录: 1 基本信息2 模型清单3 对话接口4 流式协议5 文生图6 错误码7 客户端接入8 代码示例9 用量与计费10 FAQ

1基本信息

Base URLhttps://aigcbox.com.cn/relay/v1
认证方式HTTP Header:Authorization: Bearer sk-xm-你的Key
协议OpenAI 兼容(POST /chat/completionsGET /modelsPOST /images/generations
请求格式JSON,UTF-8,请求体上限 256KB
限流60 次/分钟/Key(滑动窗口),超限返回 429
超时建议对话 180s,文生图 150s(服务端同步等待出图)
Key 获取登录小鸣TV →「我的」→ API 中转站(累计充值满 ¥198 开通,支持随时重置)

2模型清单

模型 ID提供方擅长场景
qwen3-coder-plus通义(百炼)编程首选:代码生成、调试、技术写作,长上下文
qwen-plus通义(百炼)通用对话、写作、翻译、摘要,性价比高
qwen-max通义(百炼)复杂推理、长文档分析、高难度任务
MiniMax-M2MiniMax新一代通用模型,指令遵循好
MiniMax-M1MiniMax通用对话、内容创作
doubao-seed-1-6-250615豆包(火山方舟)字节旗舰模型,综合能力强
doubao-seed-1-6-flash-250615豆包(火山方舟)速度优先,延迟低,适合高频轻量调用
wanx2.1-t2i-turbo通义万相文生图(快速),见第 5 节
wanx2.1-t2i-plus通义万相文生图(高质量),见第 5 节

模型名即路由:请求按 model 字段自动转发到对应上游,无需关心上游差异。新模型上架会在此页更新。

3对话接口 POST /chat/completions

请求参数

参数类型必填说明
modelstring模型 ID(见第 2 节清单,精确匹配,区分大小写)
messagesarray对话消息数组,role 为 system/user/assistant
streambooltrue 走 SSE 流式(见第 4 节),默认 false
temperaturefloat采样温度,0~2,越小越确定,默认上游默认
max_tokensint最大生成 token 数
top_pfloat核采样参数,0~1
stopstring/array停止序列(上游支持时生效)
presence_penaltyfloat话题新鲜度惩罚(上游支持时生效)

未列出的 OpenAI 参数会原样透传给上游,上游不支持的参数会被其忽略。

非流式响应结构

{
  "id": "chatcmpl-xxx",
  "object": "chat.completion",
  "created": 1787000000,
  "model": "qwen-plus",
  "choices": [{
    "index": 0,
    "message": {"role": "assistant", "content": "你好!"},
    "finish_reason": "stop"
  }],
  "usage": {"prompt_tokens": 12, "completion_tokens": 61, "total_tokens": 73}
}

用量(usage)会同时记录在你的账户里,可在「我的 → API 中转站」查看今日/累计消耗。

4流式协议(SSE)

请求加 "stream": true 后,响应为 text/event-stream,逐行推送:

data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"role":"assistant","content":""}}]}

data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"你"}}]}

data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"好"}}]}

data: [DONE]
行格式data: 前缀 + JSON,行间以空行分隔
增量字段choices[0].delta.content 为新增文本片段,客户端自行拼接
结束标志data: [DONE](部分上游省略,连接关闭即结束)
错误处理上游异常时推送 data: {"error": {...}} 后结束
反向代理已关闭响应缓冲(X-Accel-Buffering: no),逐字可达

5文生图 POST /images/generations

请求参数

参数类型必填说明
modelstringwanx2.1-t2i-turbo(默认)/ wanx2.1-t2i-plus
promptstring画面描述,中英文均可,最长 800 字符
sizestring1024x1024(默认)/ 720x1280 / 1280x720
nint生成数量 1~4,默认 1

请求示例

curl https://aigcbox.com.cn/relay/v1/images/generations \
  -H "Authorization: Bearer sk-xm-你的Key" \
  -H "Content-Type: application/json" \
  -d '{"model":"wanx2.1-t2i-turbo","prompt":"一只戴耳机的蓝色小企鹅,3D 卡通风格","size":"1024x1024","n":1}'

响应示例

{
  "created": 1787000000,
  "data": [{"url": "https://dashscope-xxx.aliyuncs.com/xxx.png", "revised_prompt": null}]
}
生成耗时约 10~60 秒(接口同步等待)。返回的 URL 为临时签名地址(约 24 小时有效),请及时下载保存。

6错误码

HTTP含义处理建议
400参数错误(JSON 非法 / 模型不存在 / prompt 为空)检查 model 拼写与必填参数
401Key 无效、未开通或已重置到「我的 → API 中转站」确认或重取 Key
403未达开通条件累计充值满 ¥198 后自动开通
413请求体超过 256KB拆分长上下文,或精简 messages
429触发限流(60 次/分钟)指数退避重试,或联系提升配额
502上游接口异常稍后重试;连续出现请联系客服
504文生图超时(>120s)简化 prompt 重试

错误响应统一为 {"detail": "错误描述"}(JSON)。上游错误不会泄露上游密钥等内部信息。

7客户端接入

Codex CLI

# 方式一:环境变量(推荐)
export OPENAI_BASE_URL="https://aigcbox.com.cn/relay/v1"
export OPENAI_API_KEY="sk-xm-你的Key"
codex
# 方式二:~/.codex/config.toml
model = "qwen3-coder-plus"
model_provider = "xiaoming"

[model_providers.xiaoming]
name = "xiaoming"
base_url = "https://aigcbox.com.cn/relay/v1"
env_key = "XIAOMING_API_KEY"
wire_api = "chat"

图形客户端

客户端配置方法
CursorSettings → Models → OpenAI API Key 填 Key;Override OpenAI Base URL 填中转地址;模型名 qwen3-coder-plus
Cherry Studio设置 → 模型服务 → OpenAI → API 密钥填 Key,API 地址填中转地址,添加模型
NextChat设置 → 自定义接口 → OpenAI → API Key + 自定义 Base URL
ChatBox设置 → AI 提供方 → OpenAI API → 密钥与 API 域名
VSCode Continue / ClineProvider 选 OpenAI Compatible,Base URL 与 Key 同上
沉浸式翻译设置 → 翻译服务 → 自定义 OpenAI 接口

8代码示例

Python(openai SDK,含流式与异常处理)

from openai import OpenAI, APIError, RateLimitError

client = OpenAI(api_key="sk-xm-你的Key", base_url="https://aigcbox.com.cn/relay/v1")

# 非流式
resp = client.chat.completions.create(
    model="qwen3-coder-plus",
    messages=[{"role": "user", "content": "用 Python 写快排"}],
    temperature=0.3,
)
print(resp.choices[0].message.content)

# 流式
stream = client.chat.completions.create(
    model="qwen-plus",
    messages=[{"role": "user", "content": "写一首短诗"}],
    stream=True,
)
for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta:
        print(delta, end="", flush=True)

# 异常处理
try:
    client.chat.completions.create(model="qwen-plus", messages=[])
except RateLimitError:
    # 429:退避重试
    pass
except APIError as e:
    print("调用失败:", e)

Node.js

import OpenAI from "openai";

const client = new OpenAI({ apiKey: "sk-xm-你的Key", baseURL: "https://aigcbox.com.cn/relay/v1" });
const resp = await client.chat.completions.create({
  model: "qwen3-coder-plus",
  messages: [{ role: "user", content: "你好" }],
});
console.log(resp.choices[0].message.content);

Java(OkHttp)

OkHttpClient client = new OkHttpClient();
String json = "{\"model\":\"qwen-plus\",\"messages\":[{\"role\":\"user\",\"content\":\"你好\"}]}";
Request req = new Request.Builder()
    .url("https://aigcbox.com.cn/relay/v1/chat/completions")
    .addHeader("Authorization", "Bearer sk-xm-你的Key")
    .post(RequestBody.create(json, MediaType.get("application/json")))
    .build();
String body = client.newCall(req).execute().body().string();

Go

payload := strings.NewReader(`{"model":"qwen-plus","messages":[{"role":"user","content":"你好"}]}`)
req, _ := http.NewRequest("POST", "https://aigcbox.com.cn/relay/v1/chat/completions", payload)
req.Header.Set("Authorization", "Bearer sk-xm-你的Key")
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)

9用量与计费

价格统一为官方刊例价的 50%(5 折),按上游实际 token 用量折算
查询用量「我的 → API 中转站」实时显示:今日调用次数、累计次数、累计 token 消耗
限流60 次/分钟/Key;更高并发需求联系微信 Aigc1668888 单独开通
Key 安全Key 仅服务端哈希存储;泄露可在「我的」一键重置,旧 Key 立即失效

10FAQ

Key 在哪里获取?
登录小鸣TV →「我的」→ API 中转站,自动签发(累计充值满 ¥198 开通)。
401 / 429 怎么处理?
401:Key 错误、未开通或刚重置过;429:触发限流,降速或做指数退避(建议 1s/2s/4s 重试)。
支持 function calling / vision 吗?
参数会透传,但取决于上游模型能力;多模态输入暂以文本对话为主,图片请走文生图接口。
返回的图片 URL 多久有效?
文生图返回的是上游临时签名 URL,约 24 小时有效,请下载后自行存储。
可以商用吗?并发多少?
可以商用。默认 60 次/分钟,企业级并发联系微信 Aigc1668888 评估。
Key 泄露了怎么办?
「我的 → API 中转站」点「重置」秒换新 Key,旧 Key 即刻失效;也可联系微信处理。
我的请求内容会被存储吗?
仅记录调用元数据(时间、模型、token 用量、IP),不审查不存储对话内容。