Share

外观
风格

openai-gateway

2026年2月7日 · 工具

OpenAI Key 轮询网关

用于把多个 OpenAI key 做轮询和限流,并限制模型白名单。


状态

该网关仓库已迁出当前 mom 仓库(当前目录不再包含 openai-gateway/ 代码)。

如需继续使用,请在外部仓库或部署目录执行以下步骤。

初始化

cd <openai-gateway 项目目录>
cp <REDACTED_TOKEN> <REDACTED_TOKEN>
# 编辑 <REDACTED_TOKEN>: keys + allowed_models

uv venv
source .venv/bin/activate
uv pip install -r requirements.txt

启动

uv run -- uvicorn app:app --host 0.0.0.0 --port 8000

常驻后台 (launchd)

launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/<REDACTED_TOKEN>
launchctl bootout gui/$(id -u) ~/Library/LaunchAgents/<REDACTED_TOKEN>
launchctl kickstart -k gui/$(id -u)/com.envvar.openai-gateway

环境变量覆盖

  • <REDACTED_TOKEN>: 逗号分隔 keys
  • <REDACTED_TOKEN>_FILE: 一行一个 key 的文件路径
  • ALLOWED_MODELS: 逗号分隔模型
  • HEDGE_REQUESTS: 并发赛跑请求数
  • <REDACTED_TOKEN> / <REDACTED_TOKEN>S: 客户端需发 Authorization: Bearer <gateway_key>
  • OPENAI_BASE_URL
  • OPENAI_TIMEOUT_SECONDS

约束

  • JSON 请求体必须包含 model
  • 非 JSON 请求会原样透传(multipart/file/audio)
  • /v1/models 只返回 allowlist
  • /health 用于健康检查
  • 401/403 会自动标记 bad key 并禁用
  • hedge_requests 会增加并发和成本
  • 大文件上传建议 hedge_requests = 1