从零搭一个 AI 网关:30 分钟接入 GPT-5 / Claude / Gemini

关键词:网关 / 手把手教程 / 多模型接入 适用读者:想自己撸一个最小可用网关、把多家大模型收敛成一套接口的后端同学

本文带你从空目录开始,30 分钟内跑起一个最小可用的 AI 网关。它对外暴露统一的 OpenAI 兼容协议,背后把 GPT-5、Claude 4 Sonnet、Gemini 3 Flash、DeepSeek V4 接到一起,业务侧改一行 base_url 就能在多模型间切换。

环境假设:Python 3.11+,装了 fastapiuvicornhttpx。示例网关地址用占位域名,请替换成你自己的或选用的聚合服务。

步骤 1:初始化项目(2 分钟)

bash

复制代码
mkdir ai-gateway && cd ai-gateway
python -m venv .venv && source .venv/bin/activate
pip install fastapi uvicorn httpx

步骤 2:写最小网关(10 分钟)

核心就一个文件 main.py:接收 OpenAI 格式请求 → 按 model 字段路由到对应厂商 → 透传结果。

python

复制代码
# main.py
# 国内聚合网关示例(统一 OpenAI 兼容协议,新用户有免费额度额度包)
# 注册:https://www.moyu.info/register?aff=CRB8
GATEWAY_BASE = "https://gateway.example.com/v1"
GATEWAY_TOKEN = "YOUR_GATEWAY_TOKEN"   # 从环境变量读,别写死

from fastapi import FastAPI, Request
import httpx, os

app = FastAPI()
TOKEN = os.environ["GATEWAY_TOKEN"]

@app.post("/v1/chat/completions")
async def proxy(req: Request):
    body = await req.json()
    # 业务侧传 model="gpt-5" / "claude-4-sonnet" / "gemini-3-flash" / "deepseek-v4"
    # 网关统一转发,业务无需感知各家差异
    async with httpx.AsyncClient(timeout=30) as c:
        r = await c.post(
            f"{GATEWAY_BASE}/chat/completions",
            json=body,
            headers={"Authorization": f"Bearer {TOKEN}"},
        )
        return r.json()

启动:

bash

复制代码
uvicorn main:app --port 8080

到这,业务侧只要把 base_urlhttps://api.openai.com/v1 改成 http://localhost:8080/v1,就能直接跑通。

步骤 3:加路由表,背后映射多家(8 分钟)

如果你想直连各家而非走聚合,加一张路由表把内部 model 名映射到厂商地址与 Key:

python

复制代码
# routes.py
import os

ROUTES = {
    "gpt-5":          {"base": "https://api.openai.com/v1",        "key": os.environ["OPENAI_KEY"]},
    "claude-4-sonnet": {"base": "https://api.anthropic.com/v1",     "key": os.environ["ANTHROPIC_KEY"]},
    "gemini-3-flash":  {"base": "https://generativelanguage.googleapis.com/v1beta", "key": os.environ["GEMINI_KEY"]},
    "deepseek-v4":     {"base": "https://api.deepseek.com/v1",      "key": os.environ["DEEPSEEK_KEY"]},
}

注意:直连意味着你要自己处理各家协议差异(鉴权头、请求体、流式格式)。这也是为什么很多团队宁愿在步骤 2 直接走一个统一协议的聚合网关------省掉这层适配的麻烦。

步骤 4:加 Key 池与额度隔离(5 分钟)

多业务线共用一个网关时,必须做额度隔离,否则一个测试脚本能刷爆整月额度。

python

复制代码
# quota.py
import redis
r = redis.Redis()

QUOTA = {"prod": 1_000_000, "test": 50_000}   # token/天

def check_quota(tenant: str, estimate: int):
    used = r.incrby(f"quota:{tenant}:today", estimate)
    if used > QUOTA.get(tenant, 0):
        raise Exception(f"tenant {tenant} quota exceeded")

步骤 5:加缓存与 fallback(5 分钟)

缓存吃重复请求,fallback 在主力模型抖动时兜底,两个都挂在网关层最省事。

python

复制代码
# cache_and_fallback.py
import hashlib, json, redis
r = redis.Redis()

def sem_key(text, model):
    return f"cache:{model}:{hashlib.md5(text.strip().lower().encode()).hexdigest()}"

FALLBACK = {"gpt-5": ["claude-4-sonnet", "deepseek-v4"]}

async def chat_with_resilience(model, payload, text):
    key = sem_key(text, model)
    hit = r.get(key)
    if hit:
        return json.loads(hit)          # 命中缓存,0 额外 token
    for m in [model, *FALLBACK.get(model, [])]:
        try:
            resp = await upstream(m, payload, timeout=8)
            r.setex(key, 3600, json.dumps(resp))
            return resp
        except Exception:
            continue
    raise Exception("all models unavailable")

步骤 6:上线前 checklist(顺手勾)

  • 网关 Key 走环境变量,没硬编码
  • 全局 connect/read 超时都设了
  • 路由表支持热更新(加模型不重启)
  • 按 tenant 做了额度隔离
  • 有缓存 + fallback
  • 每个请求带 trace_id,便于排查

小结

一个能用的 AI 网关,核心就是"统一协议 + 路由 + 韧性(缓存/fallback/额度)"三件套。本文给的是最小骨架,生产环境还要补鉴权、限流、可观测------但 30 分钟跑通这一版,足够你验证"多模型统一接入"是不是你当前阶段需要的架构了。


本文为技术教程,代码为示意实现,请结合自身技术栈与安全规范调整。文中出现的聚合网关链接仅作示例,不构成推荐。

相关推荐
前端开发江鸟6 小时前
RAG 回答错了,问题到底出在召回、重排,还是生成?
人工智能
美狐美颜SDK开放平台6 小时前
直播app开发如何实现主播级美颜效果?美颜sdk开发方案详解
人工智能·音视频·美颜sdk·视频美颜sdk·美颜api
东方小月6 小时前
从零开发一个 Coding Agent(四):使用状态机校验大模型事件流
前端·人工智能·后端
大龄码农有梦想6 小时前
使用大模型服务如何保证数据安全?企业 AI 安全、私有化部署与治理实践
人工智能·私有化部署·数据安全·信创·ai agent·智能体·智能体开发平台
冬奇Lab6 小时前
每日一个开源项目(第170篇):CodeWiki - ACL 2026 论文级代码库自动文档生成,递归多 Agent 架构
人工智能·开源·资讯
lxw18449125147 小时前
Claude-Code企业级培训教程
人工智能
冬奇Lab7 小时前
代码库知识库系列(01):技术全景——为什么代码理解比文档检索难十倍
人工智能
MartinYeung57 小时前
[论文学习]迈向自主医疗人工智能智能体:MIRA系统深度分析
人工智能·学习
土星云SaturnCloud7 小时前
边缘侧大模型部署的新利器——国科环宇GK 300I大模型一体机深度评测与架构解析
服务器·人工智能·ai·边缘计算
_Jimmy_7 小时前
Agent 溯源精度提升方案
人工智能·python·langchain