AI Gateway 架构

Vertex 不可用时通过开关秒切到 DeepSeek + Workers AI,业务零感知

架构图

                    业务 Worker
        ┌──────────────────────────────────┐
        │  youtube-trim / youtube-dub      │
        │  youtube-translate / -analysis   │
        │  image-recognize / research-...  │
        └──────────────┬───────────────────┘
                       │ env.VERTEX_SVC (Service Binding)
                       ↓
        ┌──────────────────────────────────┐
        │       vertex-gateway             │
        │   (统一入口,接口签名永久不变)      │
        │                                  │
        │  ┌──────────────────────────┐   │
        │  │  4 个 BYPASS 开关         │   │
        │  │  TEXT / VISION / TTS / AUDIO │
        │  └──────────────────────────┘   │
        └──┬──────────────────────────┬────┘
           │                          │
   switch=true                    switch=false
           ↓                          ↓
   ┌──────────────────┐      ┌──────────────────┐
   │ fallback 路径      │      │ Vertex 路径        │
   │                  │      │                  │
   │ DeepSeek (text)  │      │ gemini-2.5-pro   │
   │ LLaVA   (vision) │      │ gemini-3.1-tts   │
   │ MeloTTS (tts)    │      │ gemini-flash     │
   └──────────────────┘      └──────────────────┘

4 个 BYPASS 开关

开关true(当前默认)false
BYPASS_VERTEX_TEXT→ openapi-deepseek-gateway→ Vertex gemini-2.5-flash-lite
BYPASS_VERTEX_VISION→ cf-ai-gateway (LLaVA)→ Vertex gemini-2.5-flash-lite
BYPASS_VERTEX_TTS→ cf-ai-gateway (MeloTTS)→ Vertex gemini-3.1-flash-tts
BYPASS_VERTEX_AUDIO→ DeepSeek 文本降级→ Vertex gemini-2.5-pro 听音频

受影响的端点

端点开关
POST /chatBYPASS_VERTEX_TEXT
POST /translateBYPASS_VERTEX_TEXT
POST /analyzeBYPASS_VERTEX_TEXT
POST /summarizeBYPASS_VERTEX_TEXT
POST /visionBYPASS_VERTEX_VISION
POST /tts / /tts-to-r2BYPASS_VERTEX_TTS
POST /diarize-translateBYPASS_VERTEX_AUDIO

Vertex 续费后回滚

一键脚本:

export CLOUDFLARE_EMAIL=go20260310@outlook.com
export CLOUDFLARE_API_KEY=<cfk_ Global API Key>

bash MIGRATION_ROLLBACK.sh         # 全部回 Vertex
bash MIGRATION_ROLLBACK.sh text    # 只回文本
bash MIGRATION_ROLLBACK.sh audio   # 只回音频说话人识别

手动改 vertex-gateway/wrangler.toml:

[vars]
BYPASS_VERTEX_TEXT   = "false"
BYPASS_VERTEX_VISION = "false"
BYPASS_VERTEX_TTS    = "false"
BYPASS_VERTEX_AUDIO  = "false"

然后 wrangler deploy --config vertex-gateway/wrangler.toml

调用方零感知。所有业务 worker 通过 env.VERTEX_SVC.fetch() 走统一入口, 开关切换不需要改任何调用方代码、不用重部其他 worker。

验证开关状态

curl https://vertex-gateway.hb67egcim4.workers.dev/health

响应:

{
  "status": "ok",
  "bypass": { "text": true, "vision": true, "tts": true, "audio": true }
}