通俗解释 OpenAI 网关 API
该术语用于三种不同的事物,选错含义会导致选错工具。以下是每种含义,以及本网站的适用位置。
已更新

要点
- LLM 前面的网关是一个接受 OpenAI 风格请求并将其转发到其他地方的一层。
- 该站点不是那种路由器。它是一个托管接口,遵循 OpenAI 请求格式为 uncensored 模型提供服务。
- 它不是 OpenAI 或任何其他模型制造商的官方 API。
- 如果你只需要更换基础 URL,协议兼容性就足够了;如果你需要路由和故障转移,你需要一个单独的网关。
该短语通常的含义
当有人搜索 openai gateway api 时,他们通常想要以下三种之一,而且他们很少说明是哪一种。首先理清它们可以节省大量困惑,因为这三者有不同的用途和不同的成本。
| 含义 | 作用 | 想要它的典型原因 |
|---|---|---|
| 你运行的代理或路由器 | 位于你的基础设施中,以 OpenAI 格式接收请求并将其转发到一个或多个上游提供商 | 集中密钥、日志、故障转移、按团队跟踪支出 |
| 托管的多提供商服务 | 第三方为你运行该路由层并向你收费 | 一个账户用于多个模型,无需维护服务器 |
| 兼容的接口 | 提供商通过相同的请求和响应格式提供自己的模型 | 使用不同的模型或不同的内容规则重用现有的 SDK 代码 |
网关一词源于网络和 API 管理领域,指代一个检查凭据、应用限制并转发流量的入口。应用于语言模型时,该入口使用由 OpenAI 的 chat completions 接口普及的格式:包含模型名称和消息列表的 JSON 主体、请求头中的 Bearer 令牌,以及包含选项和 token 使用情况的 JSON 响应。由于许多工具都是针对该格式编写的,因此许多服务器现在都在模仿它。
本网站的适用位置
本网站属于第三行,而不是前两行。它是一个托管 API,通过 OpenAI 请求格式公开一个开放权重模型。该模型由独立提供商运行,并针对合法成人用途无内容拒绝进行优化。你通过模型 ID uncensored 选择它。
需要详细说明,因为域名可能暗示比实际交付的更多:
- 它不是 OpenAI、Meta、Mistral、Qwen、DeepSeek、xAI、Google、Anthropic 或任何其他供应商的官方 API。
- 它不是 跨供应商的路由器。没有请求被发送到其他公司的模型。每次调用都指向同一个模型。
- 仅限文本。不支持图像、音频或视频生成,也不支持嵌入和微调。
- 它支持
POST /v1/chat/completions和GET /v1/models,除此之外没有其他支持。
你获得的是熟悉的表面:SSE 流式输出、工具调用、JSON 模式以及通常的采样参数。上下文窗口为 100,000 token,计算提示词和生成文本的总和。详细信息在 API 文档 中。
为什么线路兼容性是有用的部分
兼容接口概念的大部分价值在于你的切换成本降至几乎为零。如果你的代码在一个 OpenAI 风格服务器上运行正常,将其指向另一个服务器只需进行配置更改,而不是重写。你更改 URL 和密钥,并更改模型名称。
以下是使用 curl 时的样子,这样可以轻松查看关键组件:
curl https://api.openaigatewayapi.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Say hello in three languages."}]
}'
以及通过 Python SDK 的相同操作,其中只有构造函数知道服务器:
from openai import OpenAI
client = OpenAI(base_url="https://api.openaigatewayapi.com/v1", api_key="paste-your-key-here")
reply = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Say hello in three languages."}],
)
print(reply.choices[0].message.content)
这也是网关层和兼容接口被混淆的原因。从客户端角度看它们看起来完全相同:相同的路径、相同的标头、相同的 JSON。区别在于门后。路由器决定哪个模型回答每个请求。兼容接口始终使用它托管的模型。
何时需要真正的网关层
仅靠兼容性并不能提供人们在谈论运行网关时所说的功能。如果以下任何一项适用于你,请计划一个单独的层,而不是期望从单个接口中获得:
- 自动故障转移。 当第一个提供商出错时,重试另一个提供商。
- 按团队预算和密钥。 从单个上游账户发行许多内部密钥,每个密钥都有自己的上限。
- 请求日志记录和脱敏。 集中记录提示词和响应,并移除敏感字段。
- 按任务路由。 分类使用便宜模型,推理使用大模型,由你自己的规则选择。
- 缓存。 为重复的提示词返回存储的答案。
这些都是好理由,对于拥有多个提供商的团队,自托管代理通常是正确的答案。它还增加了需要部署、监控和安全的服务,这对于小型项目来说,成本很容易被低估。运行 LLM 网关的权衡 页面更详细地介绍了该决策。
这两个想法可以无缝结合。你运行的代理可以将此接口列为一个上游,使用 uncensored 作为它转发到的模型。在该设置中,在你的侧记录 X-Request-Id 响应标头。如果将来需要帮助追踪特定调用,这是需要引用的值。
你应该计划的限制和行为
单个托管接口很简单,但在其上构建之前,你应该了解其边缘情况。
速率和并发限制
完整密钥允许 8 个并发请求和每分钟 300 个请求。试用密钥允许 2 个并发和每分钟 60 个。超过限制时,API 以错误代码 rate_limited 或 concurrency 响应 HTTP 429。在临时过载期间,它也响应 429,带有 Retry-After: 5 标头。流式请求会保留其槽位,直到流结束,因此长时间生成会因其整个持续时间而占用并发配额。
请求大小
请求体最大为 8 MB。实际上,100,000 token 窗口是大多数提示词更严格的限制。如果你将长聊天历史塞入每次调用,请在达到任一限制之前对其进行截断。
可观测性
每个响应都包含 X-Request-Id 和 X-Balance-USD,以及回显你的请求和并发限制的标头。请记录它们。你稍后构建的网关可以读取相同的标头,因此从它们开始没有任何劣势。
评估任何网关或兼容 API 时应问的问题
无论评估的是本服务、托管路由器还是自托管代理,该检查清单均适用。在将代码提交给任何一项服务之前,请先写下答案。
- 谁提供模型的回复? 是特定供应商、独立主机上的开放权重模型,还是路由器在当下时刻选择的模型。
- 价格单位是什么? 按 token、按请求或按月计费。此处按 token 计费,采用预付费模式。
- 失败时如何处理? 此处,失败或被拒绝的请求不收费。
- 哪些功能是真实的? 使用你自己的载荷测试流式输出、工具调用和 JSON 模式,而不是演示提示词。
- 提示词去向何处? 此处提示词不用于训练。阅读隐私页面了解详情,并与任何替代方案进行比较。
- 硬性限制是什么? 并发数、每分钟请求数、请求体大小和上下文窗口。
定价简单明了,只需一分钟即可核对:输入 token 每 1M 为 $0.15,输出 token 每 1M 为 $0.50,从永不过期的预付额度中扣除。定价页面列出了充值档位。如果你想在进行任何支付之前查看端点表现,API 密钥页面允许新用户一键领取 $0.50 试用额度,无需银行卡。
合理的起步方式
保持首次测试规模较小。领取试用额度,调用 GET /v1/models 以确认密钥,然后在基础 URL 已更改的情况下,从你的应用程序发送三个真实提示词。将你得到的回复与当前使用的服务进行对比,检查响应头,并查看 usage 中的 token 计数。如果输出符合预期且限制适合你的流量,请先迁移一个低风险功能,然后再迁移其余部分。内部工具、草稿助手和后台作业是很好的首选迁移对象,因为这些地方的粗糙体验带来的成本远低于面向客户的流程。
如果稍后你决定需要路由或故障转移,你构建的内容不会浪费。请求格式保持不变,可以在应用代码之前添加代理层,而无需更改应用代码。
更多指南
问答
这是官方的 OpenAI API 吗?
不是。它是一个独立托管的服务,使用相同的请求格式。它不由 OpenAI 或其他任何模型供应商运营。
它会将我的请求路由到不同的模型吗?
不会。每个请求都指向一个开放权重模型,通过模型 ID uncensored 进行选择。跨供应商没有路由。
我可以在它前面放置自己的网关吗?
可以。任何能够转发 OpenAI 风格聊天补全请求的代理都可以将此端点列为上游。使用基础 URL https://api.openaigatewayapi.com/v1 和你的密钥。
费用是多少?
$0.15 每 1M 输入 token 和 $0.50 每 1M 输出 token,从预付额度中扣除。充值起步价为 $20,额度不会过期。
它不适合做什么?
超出文本聊天的场景。不提供图像、音频或视频生成,也不提供嵌入和微调功能。
只差一张表单,即可获得密钥
创建账户,复制密钥,更改基础 URL。这就是全部设置。