1快速开始
四步把模型接进你自己的系统。全程只需要一个 API Key 和一个 base_url,任何支持 OpenAI 协议的 SDK 或框架都能直接用。
① 注册并登录
在 模型广场 页底部登录 51-ai.cn 账号(支持密码或邮箱验证码)。
② 创建 API Key
登录后点击「创建新密钥」。密钥格式为 sk-51-…,仅在创建时展示一次,请立即保存。
③ 配置 base_url
把 SDK 的 base_url 指向我们的网关,api_key 填刚创建的密钥。
④ 发出第一个请求
调用 /v1/chat/completions,model 填模型标准调用名称(见第 6 节)。
最小可用示例
curl https://api.51-ai.cn/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-51-你的密钥" \
-d '{
"model": "DeepSeek-V4-Flash-0731",
"messages": [
{"role": "user", "content": "你好,介绍一下你自己"}
]
}'
2网关与接入点
我们提供三个接入点,接口协议完全一致。国内业务建议走国内网关,海外业务或需要访问境外模型时走海外网关(达拉斯节点)。
完整请求地址
| 能力 | 路径 | 方法 |
|---|---|---|
| 对话补全 | /v1/chat/completions | POST |
| 模型列表 | /v1/models | GET |
| 文本向量 | /v1/embeddings | POST |
例如国内网关的对话补全地址为 https://api.gpugeek.com/v1/chat/completions,海外网关为 https://geinfer.com/v1/chat/completions。
3鉴权
所有请求都需要在 HTTP 头里带上 Bearer Token。密钥与账号绑定,可在控制台随时创建或撤销。
Authorization: Bearer sk-51-你的密钥 Content-Type: application/json
安全建议
密钥等同于账号权限,请只保存在服务端环境变量中,不要写进前端代码或提交到代码仓库。发现泄露请立刻到控制台撤销并重建。
4OpenAI 兼容接口
POST /v1/chat/completions 完全兼容 OpenAI 协议,换模型只需要改 model 参数。
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 模型标准调用名称,见 模型广场 |
messages | array | 是 | system / user / assistant 角色消息数组 |
max_tokens | integer | 否 | 最大输出长度,通用上限 4096 |
temperature | number | 否 | 0–2,越大越随机 |
stream | boolean | 否 | 为 true 时以 SSE 流式返回 |
top_p / stop | — | 否 | 与 OpenAI 语义一致 |
响应结构
{
"id": "chatcmpl-…",
"object": "chat.completion",
"created": 1757660000,
"model": "DeepSeek-V4-Flash-0731",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "你好!我是…" },
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": 12, "completion_tokens": 88, "total_tokens": 100 }
}
流式模式下返回 text/event-stream,每个事件形如 data: {"choices":[{"delta":{"content":"…"}}]},以 data: [DONE] 结束。
5代码示例
同一份代码把 base_url 换成国内或海外网关即可,其余不用改。
cURL
curl https://api.51-ai.cn/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-51-你的密钥" \
-d '{
"model": "DeepSeek-V4-Flash-0731",
"messages": [
{"role": "system", "content": "你是一个乐于助人的助手"},
{"role": "user", "content": "你好,介绍一下你自己"}
]
}'
Python(openai SDK)
from openai import OpenAI
client = OpenAI(
api_key="sk-51-你的密钥",
base_url="https://api.51-ai.cn/v1"
)
resp = client.chat.completions.create(
model="DeepSeek-V4-Flash-0731",
messages=[{"role": "user", "content": "你好,介绍一下你自己"}],
)
print(resp.choices[0].message.content)
# 流式输出
stream = client.chat.completions.create(
model="Gemini-3.8-flash-premium",
messages=[{"role": "user", "content": "写一首关于春天的诗"}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="")
Node.js
import OpenAI from "openai";
const client = new OpenAI({
apiKey: "sk-51-你的密钥",
baseURL: "https://api.51-ai.cn/v1",
});
const resp = await client.chat.completions.create({
model: "DeepSeek-V4-Flash-0731",
messages: [{ role: "user", content: "你好,介绍一下你自己" }],
});
console.log(resp.choices[0].message.content);
原生 fetch 流式(浏览器 / 边缘运行时)
const res = await fetch("https://api.51-ai.cn/v1/chat/completions", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer sk-51-你的密钥",
},
body: JSON.stringify({
model: "Claude-4.8-opus-premium",
stream: true,
messages: [{ role: "user", content: "用三句话介绍你自己" }],
}),
});
const reader = res.body.getReader();
const decoder = new TextDecoder();
while (true) {
const { value, done } = await reader.read();
if (done) break;
process.stdout.write(decoder.decode(value));
}
6模型与调用名
model 参数填模型标准调用名称(如 Gemini-3.8-flash-premium)。下表节选常用模型,完整清单、单价与销售折扣见 模型广场与报价。
| 厂商 | 节选模型调用名 | 类型 |
|---|---|---|
| Google Gemini | Gemini-3.8-flash-premium · Gemini-3.1-pro-premium · Gemini-2.5-flash-image-premium | 文本 / 图像 |
| Anthropic Claude | Claude-4.8-opus-premium · Claude-4.6-Sonnet-premium · Claude-5-opus | 文本 |
| OpenAI GPT | GPT-6-astra-premium · GPT-5.6-sol-premium · GPT-5-codex-premium | 文本 / 图像 |
| xAI Grok | Grok-4.6 · Grok-4.5 · Grok-4.1-fast | 文本 |
| DeepSeek | DeepSeek-V4-Flash-0731 | 文本 |
静态获取可用模型
调用 GET /v1/models 可以随时拉取当前账号可用的模型列表,避免把模型名写死在代码里。
7计费与额度
| 项目 | 规则 |
|---|---|
| 计费方式 | 按 token 用量计费(prompt + completion),流式按最终 usage 计 |
| 计价单位 | 每百万 Token(1M tokens)。图像模型按每张图片计价 |
| 输入 / 输出 | 分别计价,输出单价通常高于输入;部分模型按上下文长度分档(如 GPT 系列的 ≤272K / ≥272K) |
| 上下文缓存 | 支持缓存的模型区分「5min 缓存写入 / 1h 缓存写入 / 缓存读取」三档单价,命中缓存可显著降低成本 |
| 销售折扣 | 按合同报价单约定的折扣结算,折扣比例见 模型广场 |
| 余额 | 与工作台对话共用账户余额,实时扣减 |
| 余额不足 | 返回 HTTP 402 insufficient_quota,充值后自动恢复 |
8错误码
| HTTP | 含义 | 处理建议 |
|---|---|---|
| 400 | 请求参数错误(缺少 messages、model 不存在等) | 检查请求体格式与 model 名称 |
| 401 | 密钥无效、已撤销或未带 Authorization 头 | 到控制台重新生成密钥 |
| 402 | 余额不足 | 充值后重试,或联系商务开通企业额度 |
| 403 | 模型未对该账号开通 | 联系商务开通该模型权限 |
| 404 | 路径不存在 | 确认 base_url 与接口路径是否正确 |
| 429 | 触发限流 | 降低并发或退避重试 |
| 500 / 502 | 上游模型服务异常或超时 | 稍后重试;持续失败请联系客服 |
9限流与最佳实践
并发与限流
默认按账号设置并发与 RPM 上限。需要更高并发请在商务侧申请提额,说明模型、峰值 QPS 与业务场景。
超时与重试
建议客户端超时设为 60s 以上;对 429 / 5xx 采用指数退避重试(最多 2–3 次),不要无脑重试。
长上下文
超过 272K 上下文的请求在 GPT 系列上会命中更高档位的单价,建议先裁剪无关上下文再接缓存。
用好缓存
固定前缀(系统提示词、知识库片段)放在 messages 前部,可命中上下文缓存,明显降低输入成本。
10常见问题
已经用 OpenAI SDK 了,要改多少代码?
只改两个地方:base_url 指向我们的网关,api_key 换成 sk-51-…。其余代码不用动。
同一个 Key 能调用多个厂商的模型吗?
可以。一个 Key 通用,通过 model 参数切换模型即可,不需要为每个厂商单独申请密钥。
国内和海外网关怎么选?
国内业务走 api.gpugeek.com,延迟更低;需要直连境外模型或海外业务走 geinfer.com(达拉斯节点)。两者接口一致,可按需切换甚至做双活。
密钥找不到了怎么办?
密钥只在创建时展示一次。如果没保存,到控制台撤销旧密钥后重新创建一个即可。
11参考资料
以下外部资料可作为补充参考,接口协议与调用方式与我们基本一致,可以直接对照使用。
| 资料 | 地址 |
|---|---|
| API 在线文档(含国内外模型) | https://geinfer.com/app/dev-docs |
| 国内网关调用地址 | https://api.gpugeek.com |
| 海外网关(达拉斯) | https://geinfer.com |
| 硅基流动 API 文档(协议对照) | api-docs.siliconflow.cn |
| 聚合 MaaS 平台 API 使用手册 | 企业微信文档,可联系商务获取下载链接 |