openai-gateway
OpenAI Key 轮询网关
用于把多个 OpenAI key 做轮询和限流,并限制模型白名单。
状态
该网关仓库已迁出当前 mom 仓库(当前目录不再包含 openai-gateway/ 代码)。
如需继续使用,请在外部仓库或部署目录执行以下步骤。
初始化
cd <openai-gateway 项目目录>
cp config.example.toml config.toml
# 编辑 config.toml: 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/com.envvar.openai-gateway.plist
launchctl bootout gui/$(id -u) ~/Library/LaunchAgents/com.envvar.openai-gateway.plist
launchctl kickstart -k gui/$(id -u)/com.envvar.openai-gateway
环境变量覆盖
OPENAI_KEYS: 逗号分隔 keysOPENAI_KEYS_FILE: 一行一个 key 的文件路径ALLOWED_MODELS: 逗号分隔模型HEDGE_REQUESTS: 并发赛跑请求数GATEWAY_KEY/GATEWAY_KEYS: 客户端需发Authorization: Bearer <gateway_key>OPENAI_BASE_URLOPENAI_TIMEOUT_SECONDS
约束
- JSON 请求体必须包含
model - 非 JSON 请求会原样透传(multipart/file/audio)
/v1/models只返回 allowlist/health用于健康检查- 401/403 会自动标记 bad key 并禁用
hedge_requests会增加并发和成本- 大文件上传建议
hedge_requests = 1