FDE W7D4 学习手册 · AI Gateway 自研核心
W7 周级拆解 Day4 · A 级 + B 级(必须掌握 + 架构权衡,面试核心)· 约 4h · 学完能讲清"自研 AI Gateway 的核心模块,以及什么该自研、什么直接用 LiteLLM"
本日定位: W1D4 我们做过"多模型统一接入"原型;W7D4 把它演进成生产级 AI Gateway :在接入层统一做 Model Adapter / Provider 路由 / 超时重试 / Fallback / Token 成本统计 / Trace Hook / 简单限流。这是"企业 AI 平台"真正的中枢,也是区分"会用框架"和"懂平台架构"的分水岭。
学完能回答: ① AI Gateway 核心模块(路由/重试/Fallback/限流/Trace)各自做什么;② 自研 Gateway 和直接用 LiteLLM 的取舍(什么自研、什么用现成)。
使用方法: 通读原理 → 重点看「🔧 工程含义」「🎤 面试话术」「⚠ 易错点」→ 做末尾自测清单 → 配合《FDE-W7D4-评测题.md》。候选人背景:36 岁,Java + 大数据 + 医疗保险,回答落到"Java 企业 AI 平台"能力,场景用保险知识库 / 特药理赔 Agent。
一、AI Gateway 定位(从 W1D4 演进)
1.1 是什么
AI Gateway 是横在"所有 AI 应用"和"所有模型 Provider"之间的统一接入层,对所有 LLM 流量做集中治理 :路由、重试、Fallback、成本、Trace、限流。所有应用不直接调厂商 API,而是调 Gateway。
N 个 AI 应用 ──统一──> AI Gateway ──路由──> {Qwen / DeepSeek / Claude / 自建模型}
1.2 与 Spring AI(W7D1~D3)的分层
层 角色 负责
接入层 AI Gateway(本日) 跨业务线:鉴权、路由、限流、成本、Trace
应用层 Spring AI(W7D1~D3) 业务编排、Advisor 治理、Tool、Memory
W1D4 是"轻量多模型统一接入"原型(统一 HTTP + 响应);W7D4 是同一思路的企业级演进:加上限流/成本/Trace/Fallback,从"能用"到"可治理、可运营"。
Gateway 是"平台能力"的物理载体——没有它,每个 AI 应用都要自己写限流/成本/审计,且无法全局看成本。对保险集团多业务线(车险/健康险/理赔)统一管控 AI 成本与合规尤其关键。
AI Gateway 是横在 AI 应用和模型 Provider 之间的统一接入层,集中做路由/重试/Fallback/成本/Trace/限流。它是 W1D4 原型的演进版(加了治理)。与 Spring AI 分层:Gateway 在接入层做跨业务线治理,Spring AI 在应用层做业务编排。
① Gateway 不是"银弹"——它管横切治理,不替你写业务逻辑 。别把所有 Agent 逻辑塞进 Gateway。② Gateway 本身是高可用单点,挂了全公司 AI 瘫痪 ,必须无状态、可水平扩展、降级兜底。③ 别和 Spring AI 功能重叠——Spring AI 的 Advisor 治理是应用级,Gateway 是全局级,职责分清楚。
二、Model Adapter / Provider 路由
2.1 路由维度
按场景 :简单问答→Qwen(便宜),复杂推理→DeepSeek,长文摘要→Claude。
按模型健康 :某 Provider 报错率高则切到备选。
按成本/配额 :预算内选贵模型,超预算降级到便宜模型。
按用户/业务线 :VIP 走强模型,普通走经济模型。
2.2 Model Adapter
每个 Provider 一个 Adapter,把厂商请求/响应规范成 Gateway 内部统一结构(呼应 W1 自研 Adapter)。Gateway 据此做路由,业务无感知。
public interface ModelAdapter {
ChatResponse chat(ChatRequest req); // 统一请求/响应
String provider(); // qwen/deepseek/claude
boolean healthy();
}
// 路由:按场景选 adapter
ModelAdapter a = router.select(req.scenario(), req.userTier());
return a.chat(req);
路由是 Gateway 的"大脑"——把正确的请求送到正确的模型。生产中路由规则应是可配置 的(规则引擎/配置中心),不要硬编码,方便运营随时调(如把某场景从 DeepSeek 切回 Qwen 控本)。
Model Adapter 把每个 Provider 的请求/响应规范成统一结构;Provider 路由按场景/健康/成本/用户分层选模型。路由规则应可配置,便于运营随时调,而不是硬编码。
① 路由规则若硬编码,运营调一次要发版,不可接受——要外置到配置中心。② 路由到不健康 Provider 前要健康检查 ,否则雪崩。③ 多维度路由(场景+成本+用户)叠加时优先级要清晰,避免规则冲突。
三、超时重试与 Fallback
3.1 重试
只重试可重试错误 :超时、429 限流、5xx。不重试 4xx 业务错误(如参数错)。
指数退避 + 抖动,防重试风暴。
重试要带幂等 意识:对话重试同 prompt 结果不同,但 Provider 侧重试是安全的(不重复计费逻辑由 Provider 保证)。
3.2 Fallback
主模型持续失败时,切到备选模型(如 DeepSeek 挂了→Qwen),返回结果并标记 `fallback=true` 供上游感知。Fallback 是"降级保可用"的关键。
主模型调用 → 失败(超阈值) → 切 Fallback 模型 → 返回 + 标记 fallback
重试 + Fallback 保证"模型抖动不传导给用户"。保险理赔场景:主推理模型故障时,Fallback 到次选模型仍能给出结论,避免理赔流程卡死。但要记录 Fallback 事件用于质量分析。
重试只针对超时/429/5xx,指数退避+抖动;Fallback 在主模型持续失败时切备选模型并返回 fallback=true。两者保证模型抖动不传导给用户,但都要记录事件供分析。
① 重试 + Fallback 叠加可能放大大延迟 ——要设总超时上限(如主 3s + 备 3s)。② Fallback 到弱模型可能输出质量下降,上游要知道(fallback 标记)并可能走人工复核。③ 别对"答案不满意"做 Fallback,Fallback 是可用性兜底不是质量兜底。
四、Token 成本统计
4.1 统计什么
按 provider / 模型 / 业务线 / 用户 统计 token 与花费。
从响应 usage 取真实 prompt/completion tokens(呼应 W4 cost 字段)。
实时写入 Kafka → 数仓,做成本分摊与预算告警。
4.2 配额与预算
按业务线设月度预算,超阈值降级或拦截;按用户设日调用上限。这是"AI 成本可控"的核心。
大数据背景优势:成本数据进 Kafka+数仓做实时/离线分析,按险种/场景核算 AI 投入产出;医疗保险背景优势:理解"成本必须分摊到业务线"的财务合规诉求。
成本统计必须在 Gateway 做——它是唯一能看到所有 AI 流量的地方。应用层各自统计会重复且不一致。成本数据是后续"路由按预算降级"的输入。
Gateway 是唯一能看到全部 AI 流量的点,在它做 token/成本统计最全:按 provider/模型/业务线/用户统计,真实 usage 进数仓,超预算降级或拦截。这是 AI 成本可控的核心。
① 成本统计要算重试/Fallback 的额外 token ,否则账单偏低。② 缓存命中(同 prompt 复用)要扣除,否则虚高。③ 成本数据延迟会导致预算超支才发现,要近实时告警。
五、Trace Hook
5.1 作用
Gateway 在 HTTP 出口生成/透传 trace_id,记录 model/provider/token/latency/status,和 W7D3 应用层 Advisor 的 trace_id 必须是同一个 ,形成端到端链路。
入口生成 trace_id ──> Gateway 出口记(model/provider/token/latency) ──> 应用层 Advisor 续用同一 trace_id
5.2 与 W4 / W7D3 衔接
W4 定义 Trace 字段规范;W7D3 在 Advisor 实现;W7D4 Gateway 在接入层实现——三者同一 trace_id 串联。
Gateway 记的是"接入层视角"(哪家 Provider、花多少 token、延迟多少);应用层记"业务视角"(调了哪个工具、哪步慢)。
Trace Hook 让"一次理赔请求从用户到模型再回来"全可见。保险合规要求审计,Trace 是审计的数据基础。Gateway 是 trace 的起点,务必在这里生成并向下游透传。
Gateway 在入口生成 trace_id、出口记 model/provider/token/latency/status,和 W7D3 应用层同一 trace_id 串联。W4 定规范、W7D3 应用层实现、W7D4 接入层实现,三处合一。
六、简单限流(维度 / 算法)
6.1 限流维度
维度 防什么 示例
按 API Key / 用户 单用户刷爆 每用户 100 req/min
按 Provider 打爆某厂商配额 Qwen 总 1000 req/min
按业务线 某业务挤占他人 理赔线独占 60% 配额
按 Token 速率 长文本耗尽额度 每用户 50k token/min
6.2 算法
令牌桶 :允许突发、平滑限流,最常用。
漏桶 :恒定速率,防突发。
滑动窗口 :精确计数。
限流是"保护 Provider 配额 + 公平分配"的手段。保险多业务线共享 AI 配额时,按业务线限流避免"理赔线把健康险的额度吃光"。被限流返回 429,上游重试或降级。
GateWay 限流按用户/Provider/业务线/Token 速率四维;算法用令牌桶(允许突发)最常用。目的是保护厂商配额 + 多业务线公平分配。被限流返 429,上游重试或降级。
① 限流只在 Gateway 做不够——Provider 侧也有硬配额,两层要对齐,否则 Gateway 放行但厂商 429。② 限流返回值要清晰(429 + Retry-After),让上游正确退避。③ 分布式限流要用 Redis 集中计数,单机限流在 Gateway 多实例下失效。
七、与 W1D4 多模型统一接入的演进
维度 W1D4 原型 W7D4 企业 Gateway
路由 简单按 provider 选择 多维可配置路由(场景/成本/健康)
重试 可能无/简单 指数退避 + 可重试错误判定
Fallback 无 主备切换 + 标记
限流 无 多维度令牌桶
成本 无 token/花费统计 + 预算
Trace 无/简单 trace_id 串联全链路
定位 个人原型 平台中枢(多业务线)
演进主线:从"能调通多个模型"→"调得稳(重试/Fallback)→ 调得起(成本/限流)→ 调得清(Trace/审计)"。每一层新增能力都是把原型补成生产系统。
面试讲演进要突出"为什么加":重试/Fallback 为可用性,限流/成本为运营可控,Trace 为可观测与审计。这正对应平台从 demo 到生产的必经之路。
W1D4→W7D4 演进:加了可配置多维路由、指数退避重试、Fallback、多维度限流、token 成本统计、trace_id 全链路。主线是"能调通→调得稳→调得起→调得清"。
八、自研 Gateway 与直接用 LiteLLM 的取舍
8.1 LiteLLM 是什么
LiteLLM 是开源的统一 LLM 网关/SDK,一行配置接入 100+ 模型,自带负载均衡、重试、Fallback、成本追踪、限流。文档见 docs.litellm.ai。它解决的正是 W7D4 大部分模块。
8.2 取舍矩阵
能力 直接用 LiteLLM 自研 Gateway
多模型路由 开箱即用 要写
重试/Fallback 内置 要写
成本统计 内置(含 UI) 要接数仓
限流 内置(Redis) 要写
Trace 支持 OpenTelemetry 要接内部 APM
深度定制 受限(走其扩展点) 完全可控
内部系统对接 需适配 原生对接(鉴权/审计/工单)
团队技术栈 Python 为主 可用 Java(契合团队)
8.3 决策建议
中小团队 / 求快 :直接用 LiteLLM,省去重复造轮子。
强定制 / 内部系统深耦合 / Java 技术栈 :在 LiteLLM 思路上自研,或"LiteLLM 做底层 + 自研薄封装接内部治理"。
保险 / 金融合规 :常需把成本/审计/鉴权接自有系统,自研或深度集成更可控。
结论不是二选一:用 LiteLLM 当"轮子",自研当"车体" ——底层多模型接入/重试/Fallback 用 LiteLLM 或 Spring AI,但路由策略、成本分摊、审计、内部鉴权这些"企业独有逻辑"自研。避免重复造 ChatClient/限流,但保留对核心治理的控制。
LiteLLM 开箱即用(路由/重试/Fallback/成本/限流/OTel),中小团队直接用它;但深度定制、内部系统对接、Java 技术栈、金融强合规时自研更可控。最佳:LiteLLM/Spring AI 做底层轮子,自研薄层接企业治理(路由策略/成本分摊/审计/鉴权)。
① "全自研"重复造 ChatClient/限流/成本轮子,浪费人力且易有 bug,不推荐从零写。② "纯用 LiteLLM"可能在深度定制(特殊路由、内部审计字段、合规留痕)时受限,要评估扩展点。③ 决策要看团队技术栈——Java 团队硬上 Python LiteLLM 也有运维成本,可" LiteLLM 为参考 + Java 自研"。
九、候选人视角:Java 企业 AI 平台网关能力
统一管控 :所有 AI 流量经 Gateway,集团多险种/多 Agent 共享统一配额、统一成本视图。
合规内建 :鉴权、审计留痕、敏感词拦截在 Gateway 做,业务应用零改动获得合规能力。
成本运营 :按业务线分摊 AI 成本,预算告警,避免"AI 账单失控"。
韧性 :重试/Fallback 保证理赔等关键链路在模型抖动时不中断。
Java 背景优势:用 Spring Cloud Gateway / 自研 Java 网关,团队无需学 Python;大数据背景优势:成本/Trace 数据进 Kafka+数仓做运营分析。医疗保险背景优势:懂"配额/成本/审计"是集团级刚需。
讲 Gateway 时突出"平台中枢":统一管控多业务线配额、合规内建(鉴权/审计)、成本运营(分摊/告警)、韧性(重试/Fallback)。结合 Java(团队技术栈)+大数据(数仓分析)+医保(合规刚需)背景,定位为集团级 AI 基础设施。
十、高可用与安全生产实践
无状态 :Gateway 不存会话(记忆在应用层/Redis),可水平扩展。
降级 :Gateway 自身依赖(如成本统计的 Kafka)故障时不阻塞主链路,异步+降级。
配置热更新 :路由/限流规则改了即时生效,不重启。
自我保护 :Gateway 被打爆时优先保核心业务线(理赔),非核心降级。
可观测 :Gateway 自身指标(QPS/延迟/错误率)进监控,异常告警。
① Gateway 是高可用单点 ,挂了全公司 AI 瘫,必须多实例+健康检查+快速故障转移。② 限流/成本统计等旁路依赖故障不能拖垮主链路,要异步+降级。③ 配置错误(如路由规则写错)会大面积影响,改规则要有灰度+回滚。
Gateway 高可用要点:无状态可水平扩展、多实例+健康转移、旁路依赖异步降级不拖主链路、规则配置热更新+灰度回滚、自身指标进监控告警、故障时优先保核心业务线。
十一、学习资源(中文 / 官方)
LiteLLM 文档 (docs.litellm.ai)——Proxy 模式(网关)的路由、负载均衡、成本、限流、重试、Fallback 配置。
LiteLLM GitHub (BerriAI/litellm)——proxy 示例与 OpenTelemetry 集成。
Spring Cloud Gateway (spring.io/projects/spring-cloud-gateway)——Java 团队做自研网关的基石。
Spring AI 文档 (docs.spring.io/spring-ai)——应用层 ChatClient/Advisor(与 Gateway 分层)。
十二、面试达标线①:AI Gateway 核心模块
模块 作用 要点
Model Adapter / 路由 统一结构 + 选对模型 多维可配置(场景/成本/健康)
超时重试 抗抖动 只重试可重试错 + 指数退避
Fallback 主备切换保可用 标记 fallback,上游感知
Token 成本 成本可控 按业务线统计 + 预算
Trace Hook 全链路可观测 入口生成 trace_id 串联
简单限流 保护配额+公平 令牌桶,多维
达标线①核心:Gateway 六大模块——Model Adapter/路由(多维可配置选模型)、超时重试(只重试可重试错)、Fallback(主备切换)、Token 成本(按业务线统计+预算)、Trace Hook(入口生成 trace_id)、简单限流(令牌桶多维)。各模块对应"稳/省/清"的治理目标。
十三、面试达标线②:自研 Gateway vs 直接用 LiteLLM 的取舍
LiteLLM 能做什么 :开箱即用的多模型路由、重试、Fallback、成本追踪、限流、OpenTelemetry Trace——覆盖 W7D4 大部分模块。
什么该用现成 :多模型接入、重试/Fallback、基础限流、成本统计这些"通用能力"直接用 LiteLLM/Spring AI,别从零造轮子。
什么该自研 :深度定制路由策略、内部系统对接(自有鉴权/审计/工单)、成本分摊到内部账、金融强合规留痕、且团队是 Java 技术栈时——这些"企业独有逻辑"自研或用 LiteLLM 做底层 + 自研薄封装。
决策主线 :不是二选一,而是"LiteLLM/Spring AI 当轮子,自研当车体"——保留对核心治理的控制,同时不重复造基础件。
十四、W7D4 自测清单
能说清 AI Gateway 是什么、在分层中的位置(接入层 vs Spring AI 应用层)。
能画出从 W1D4 原型到 W7D4 企业 Gateway 的演进(加了哪些模块、为什么加)。
能讲清 Provider 路由的多个维度(场景/健康/成本/用户)及"规则应可配置"。
能区分重试和 Fallback:重试针对什么错误、Fallback 何时触发、都要记录。
能说明 Token 成本统计为什么必须在 Gateway 做、统计哪些维度、怎么接数仓。
能讲清 Trace Hook 怎么和 W4/W7D3 用同一 trace_id 串联全链路。
能列出限流的四维度(用户/Provider/业务线/Token 速率)和常用算法(令牌桶)。
知道分布式限流要用 Redis 集中计数,且要和 Provider 硬配额对齐。
能对比自研 Gateway 与 LiteLLM 的取舍,并给出"轮子+车体"的决策。
能讲清 Gateway 高可用要点(无状态、多实例、旁路降级、配置热更新、保核心业务)。
十五、高频面试题速记卡
Q:AI Gateway 和 Spring AI 什么关系?
分层:Gateway 在接入层做跨业务线治理(路由/限流/成本/Trace),Spring AI 在应用层做业务编排。互补不冲突。
Q:W1D4 和 W7D4 区别?
W1D4 是轻量多模型接入原型;W7D4 加了可配置路由/重试/Fallback/限流/成本/Trace,从"能用"到"可治理可运营"。
Q:重试和 Fallback 区别?
重试针对单次可重试错(超时/429/5xx)指数退避;Fallback 是主模型持续失败切备选模型保可用,都需记录。
Q:成本统计为什么放 Gateway?
它是唯一看到全部 AI 流量的点,统计最全:按 provider/模型/业务线/用户,真实 usage 进数仓,超预算降级。
Q:限流有哪些维度?
按用户/Provider/业务线/Token 速率四维;算法用令牌桶(允许突发)最常用;分布式要 Redis 集中计数。
Q:Gateway 的 Trace 怎么和 W7D3 串?
入口(Gateway)生成 trace_id,应用层 Advisor 续用同一 id;W4 定规范、W7D3 应用层实现、W7D4 接入层实现,三处合一。
Q:自研还是用 LiteLLM?
通用能力(路由/重试/成本/限流)用 LiteLLM 别造轮子;深度定制、内部对接、Java 栈、金融合规自研。最佳:LiteLLM 当轮子+自研薄层。
Q:Gateway 为什么是单点风险?
它挂了全公司 AI 瘫。必须无状态、多实例、健康检查、快速转移;旁路依赖(Kafka)故障要异步降级不拖主链路。
Q:路由规则为什么不能硬编码?
运营调一次要发版不可接受;应外置配置中心,支持场景/成本/健康实时调整,且要灰度+回滚。
Q:Fallback 到弱模型要注意什么?
质量可能下降,要返回 fallback 标记让上游感知,必要时走人工复核;且有总超时上限防延迟放大。
FDE W7D4 学习手册 · AI Gateway 自研核心(面试级)· 配合《FDE-W7D4-评测题.md》自测
📌 待查 ★ 重要
★0
📌0