API 密钥管理
创建与管理 API 密钥、供应商路由策略、额度与有效期、模型限制与 IP 白名单。
API 密钥(API Key)是调用接口的凭证。所有对 /v1/... 接口的请求都要在请求头带上:
Authorization: Bearer sk-xxxxxxxx菜单位置:左侧 常规 → API 密钥。
创建密钥
点击列表右上角的新建,表单分为三块:基本信息、额度设置、高级设置。填写名称,并确认已选择账户有权使用的路由策略或供应商。
基本信息
| 字段 | 说明 |
|---|---|
| 名称 | 便于识别用途,建议按「环境-业务」命名,如 生产-订单服务、本地开发 |
| 供应商路由 | 选择稳定优先(企业版)、价格优先(特价版),或手动指定供应商;可用选项取决于账户权限,详见下一节 |
| 过期时间 | 提供 1 小时 / 1 天 / 1 个月 / 永不过期,也可自选日期。到期后密钥自动失效 |
| 数量 | 一次批量创建多把密钥。名称会自动加序号,适合给多个同事或多个环境一次性分发 |
额度设置
| 字段 | 说明 |
|---|---|
| 无限配额 | 默认开启。这把密钥不设单独上限,能花到账户余额花完为止 |
| 额度 | 关闭「无限配额」后填写,是这把密钥的消费上限(单位为美元金额) |
密钥额度不是一笔独立的钱,钱始终从账户余额出。它的作用是「限额」——比如给外包同事一把额度 $5 的密钥,即使账户里有 $500,这把密钥最多也只能花掉 $5。
密钥额度用完后状态变成已耗尽,调用会被拒绝;编辑该密钥调高额度即可恢复。
高级设置
| 字段 | 说明 |
|---|---|
| 模型限制 | 限制这把密钥只能调用选中的模型。不选则不限制 |
| IP 白名单 | 限制只有指定 IP 能用这把密钥,支持 CIDR 表达式(如 203.0.113.0/24)。留空不限制 |
| 图片响应格式 | 生图类接口返回 URL 还是 base64,见下方说明 |
| 图片转存策略 | 是否把上游返回的图片转存到平台,见下方说明 |
创建成功后立即复制并保存 sk- 开头的密钥。
密钥等同于账户的消费权限。不要提交到代码仓库、不要写进前端代码、不要发在群里。
一旦怀疑泄露,立刻在列表里删除该密钥并新建一把——禁用只是暂停,删除才是彻底失效。
供应商路由
同一个模型,平台通常接了多条上游线路。界面上把这些线路叫供应商。供应商路由决定你的请求走哪条线,直接影响价格、速度和成功率。
有两种模式:
智能路由(默认,推荐)
由平台在当前账户已获授权、已加入供应池、支持所请求模型且满足健康要求的供应商中选择线路。异常线路会受到健康检查和熔断规则限制;自动路由不会因此获得账户原本没有的供应商权限。已授权但尚未入池的源,不会自动进入候选范围。
可以选一个偏好策略:
| 策略 | 选择方式 | 适用场景 |
|---|---|---|
| 稳定优先(企业版) | 以成功率和响应延迟为主要依据,并可保留符合条件的会话亲和线路;不承诺每次都选绝对最快的线路 | 生产业务、交互式应用、重视连续性的会话 |
| 价格优先(特价版) | 先满足健康与可用性要求,再向较低价格的线路倾斜,以加权方式选择;不保证每次命中绝对最低价 | 成本敏感的批量任务、离线处理 |
英文界面对应 Fast & Stable(Enterprise) 与 Cost Effective(Value)。名称突出稳定体验与成本取向;内部策略值仍为 success_first 与 price_first。
三步开始使用:
- 进入左侧 常规 → API 密钥。
- 编辑已有密钥,或点击新建。
- 在供应商路由 → 智能路由中选择已授权的策略并保存。已有密钥不用重新创建,客户端中的 Key 字符串也不用替换。
这两个名称表达的是路由偏好,不代表统一价格或固定套餐折扣。源的适用定价、你的会员价格或代理价格仍决定计费,详见账单与对账。
某个策略未获授权时,界面会显示不可用。只有价格池权限的账户可以使用价格优先;两个池都没有权限时,自动路由会拒绝调用,请联系站点管理员检查授权。
还可以设置忽略供应商:把你明确不想用的线路排除掉,剩下的仍由系统自动选。如果排除后没有符合条件的线路,请求会失败。
指定供应商
手动指定一个供应商调用顺序。请求会按你排的顺序,在当前仍有权限且可用的供应商中尝试。此次自动路由升级保留手动选择的具体供应商及顺序。
配合跨供应商重试开关:开启后,当前供应商的线路全部失败时,会按顺序尝试下一个供应商;关闭则只用第一个,失败即返回错误。
需要锁定某个供应商时,切换到指定供应商,仅保留该已授权供应商,并关闭跨供应商重试。锁定的是供应商分组,该分组内仍可能有多条线路;能否成功取决于其当前模型支持和可用性。
除非你有明确的线路偏好(例如合规要求必须走某个区域的线路),否则建议保持智能路由。手动指定顺序意味着你要自己承担某条线路故障时的可用性风险。
已有密钥如何兼容
无需重新创建 API Key,也无需替换客户端里的密钥字符串。 升级改变的是旧自动策略在请求时采用的路由规则。
| 原设置 | 升级后的自动选择 |
|---|---|
智能自动 / 智能均衡(smart_auto)、速度优先(speed_first)、成功率优先(success_first) | 有稳定池权限时采用稳定优先;只有价格池权限时采用价格优先;两个池都无权限时拒绝调用 |
价格优先(price_first) | 继续使用价格优先,并检查当前价格池权限 |
| 手动指定具体供应商或调用顺序 | 保留原选择,仍逐次校验供应商权限与可用性 |
编辑旧密钥的名称、额度等信息不会轮换密钥字符串。切换到新自动策略时,只能选择当前已授权的稳定优先或价格优先。
兼容不代表所有旧密钥都会恢复可用。原有的过期、禁用、账号封禁、余额或密钥额度不足、模型限制、IP 白名单与供应商权限仍然生效;被撤销的权限不会因持有旧 Key 而保留。
密钥字符串不变,也不等于自动模式下的模型覆盖完全不变。 如果某个模型原来只由池外源提供,升级后的自动请求可能返回 503。仍有该具体供应商分组权限时,可以编辑原 Key,手动指定该供应商;也可以请管理员评估入池或上架配置。此类配置需要单独确认,升级本身不保证已完成。
路由权限被拒绝(403)与池内没有符合条件的模型线路(503)应分开排查,见常见问题排查。
图片相关设置
只有调用生图类模型时这两个设置才起作用。
图片响应格式:
| 选项 | 行为 |
|---|---|
| 跟随请求或端点(默认) | 由你的请求参数或所调用的接口决定 |
| 强制 URL | 始终返回图片链接 |
| 强制 base64 | 始终返回 base64 编码,适合不方便再发一次 HTTP 请求去取图的环境 |
图片转存策略(仅在响应格式为「强制 URL」时可选):
| 选项 | 行为 |
|---|---|
| 默认存储 | 按平台默认策略处理 |
| 仅存 base64 | 只保留 base64 数据 |
| 存 URL 和 base64 | 两者都保留 |
上游返回的原始图片链接通常有效期很短。如果你需要长期保存生成结果,建议自己落库,或参考自有存储把结果自动转存到你自己的对象存储。
管理已有密钥
密钥列表里每一行可以:
- 查看用量 — 这把密钥的累计消费与调用次数;
- 编辑 — 修改上面所有字段(密钥值本身不会变);
- 禁用 / 启用 — 临时停用,不影响已有配置;
- 删除 — 永久失效,不可恢复。
批量选中后可以一次性禁用或删除。
密钥状态
| 状态 | 含义 | 怎么恢复 |
|---|---|---|
| 已启用 | 正常可用 | — |
| 已禁用 | 被手动停用 | 在列表里重新启用 |
| 已过期 | 超过设定的过期时间 | 编辑并延长过期时间,或设为永不过期 |
| 已耗尽 | 密钥自身额度用完 | 编辑并调高额度,或改为无限配额 |
密钥即将过期时,系统会提前(默认 3 天)给你发邮件提醒。可以在个人资料 → 通知里关闭这类提醒。
在代码中使用
平台兼容 OpenAI 的接口格式,绝大多数 SDK 只需要改两处:base_url 和 api_key。
curl https://<你的站点域名>/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "gpt-5.5", "messages": [{"role": "user", "content": "Hello"}]}'from openai import OpenAI
client = OpenAI(
api_key="sk-xxxxxxxx",
base_url="https://<你的站点域名>/v1",
)
resp = client.chat.completions.create(
model="gpt-5.5",
messages=[{"role": "user", "content": "Hello"}],
)
print(resp.choices[0].message.content)import OpenAI from 'openai'
const client = new OpenAI({
apiKey: process.env.API_KEY,
baseURL: 'https://<你的站点域名>/v1',
})
const resp = await client.chat.completions.create({
model: 'gpt-5.5',
messages: [{ role: 'user', content: 'Hello' }],
})
console.log(resp.choices[0].message.content)API 地址就是你当前访问的站点域名,不需要 api. 前缀。完整参数与更多接口见 API 参考。
安全建议
- 一个用途一把密钥 — 生产、测试、每个同事各自一把。出问题时可以精确定位并单独吊销,不影响其他业务。
- 用环境变量,不要硬编码 — 密钥不应出现在源码、配置文件、前端代码或截图里。
- 给密钥设上限 — 对外部协作方、试用场景,关闭「无限配额」并设一个你能接受的金额。
- 能锁 IP 就锁 IP — 服务端调用的场景,IP 白名单是成本最低的防泄漏手段。
- 定期查日志 — 在使用日志里按密钥筛选,异常的调用量通常是最早的泄漏信号。