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