<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>AI网关 on 文艺技术笔记</title>
        <link>https://wenyiblog.top/tags/ai%E7%BD%91%E5%85%B3/</link>
        <description>Recent content in AI网关 on 文艺技术笔记</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <copyright>文艺技术笔记 | 软件工程师文艺</copyright>
        <lastBuildDate>Thu, 09 Jul 2026 21:30:00 +0800</lastBuildDate><atom:link href="https://wenyiblog.top/tags/ai%E7%BD%91%E5%85%B3/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>API 网关的演进：从流量管控到 AI 网关的新一代架构设计</title>
        <link>https://wenyiblog.top/2026/07/api-gateway-ai-evolution/</link>
        <pubDate>Thu, 09 Jul 2026 21:30:00 +0800</pubDate>
        
        <guid>https://wenyiblog.top/2026/07/api-gateway-ai-evolution/</guid>
        <description>&lt;h2 id=&#34;网关这扇门不够用了&#34;&gt;&lt;a href=&#34;#%e7%bd%91%e5%85%b3%e8%bf%99%e6%89%87%e9%97%a8%e4%b8%8d%e5%a4%9f%e7%94%a8%e4%ba%86&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;网关这扇门，不够用了
&lt;/h2&gt;&lt;p&gt;API 网关是微服务架构的&amp;quot;前门&amp;quot;。所有的请求都要经过网关，由网关负责路由、认证、限流、协议转换。这个模式用了十几年，一直很稳定。&lt;/p&gt;
&lt;p&gt;但到了 AI 时代，这扇门开始扛不住了。&lt;/p&gt;
&lt;p&gt;当你的系统里不只有微服务，还有大模型；当你的流量不只有 HTTP 请求，还有流式响应；当你的计费不只有请求次数，还有 Token 消耗——传统的 API 网关就显得力不从心了。&lt;/p&gt;
&lt;p&gt;这不是网关的问题，而是时代变了。AI 应用带来了全新的需求，需要新一代的网关来承载。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;api-网关的三代演进&#34;&gt;&lt;a href=&#34;#api-%e7%bd%91%e5%85%b3%e7%9a%84%e4%b8%89%e4%bb%a3%e6%bc%94%e8%bf%9b&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;API 网关的三代演进
&lt;/h2&gt;&lt;h3 id=&#34;第一代反向代理2010-2015&#34;&gt;&lt;a href=&#34;#%e7%ac%ac%e4%b8%80%e4%bb%a3%e5%8f%8d%e5%90%91%e4%bb%a3%e7%90%862010-2015&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;第一代：反向代理（2010-2015）
&lt;/h3&gt;&lt;p&gt;最早的&amp;quot;网关&amp;quot;其实就是反向代理。Nginx、HAProxy 这些工具，做的事情很简单：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;接收外部请求&lt;/li&gt;
&lt;li&gt;根据路由规则转发到后端服务&lt;/li&gt;
&lt;li&gt;返回响应&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这个阶段的网关，核心能力是&lt;strong&gt;路由&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;典型场景：前面一个 Nginx，后面几十个微服务，Nginx 根据 URL 路径把请求分发到不同的服务。&lt;/p&gt;
&lt;h3 id=&#34;第二代api-管理2015-2023&#34;&gt;&lt;a href=&#34;#%e7%ac%ac%e4%ba%8c%e4%bb%a3api-%e7%ae%a1%e7%90%862015-2023&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;第二代：API 管理（2015-2023）
&lt;/h3&gt;&lt;p&gt;随着微服务架构的普及，简单的反向代理不够用了。企业需要：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;认证授权&lt;/strong&gt;：谁能访问哪个 API？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;流量控制&lt;/strong&gt;：每个用户每分钟能调用多少次？&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;协议转换&lt;/strong&gt;：HTTP 转 gRPC，REST 转 GraphQL&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;监控分析&lt;/strong&gt;：API 的调用量、延迟、错误率&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;于是出现了 Kong、Apigee、Tyk 这些 API 管理平台。它们不只是转发请求，还做了大量的管控工作。&lt;/p&gt;
&lt;p&gt;这个阶段的网关，核心能力是&lt;strong&gt;管控&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id=&#34;第三代ai-网关2024-&#34;&gt;&lt;a href=&#34;#%e7%ac%ac%e4%b8%89%e4%bb%a3ai-%e7%bd%91%e5%85%b32024-&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;第三代：AI 网关（2024-）
&lt;/h3&gt;&lt;p&gt;到了 AI 时代，需求又变了。当你的系统里开始调用大模型 API，你会发现：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;模型有几十个，怎么选？&lt;/li&gt;
&lt;li&gt;Token 怎么计费？每个用户能用多少？&lt;/li&gt;
&lt;li&gt;流式响应（SSE）怎么处理？&lt;/li&gt;
&lt;li&gt;Prompt 怎么审计？有没有敏感信息？&lt;/li&gt;
&lt;li&gt;模型响应慢，怎么做负载均衡？&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些问题，传统的 API 网关解决不了。需要专门的 AI 网关。&lt;/p&gt;
&lt;p&gt;这个阶段的网关，核心能力是&lt;strong&gt;智能&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id=&#34;三代对比&#34;&gt;&lt;a href=&#34;#%e4%b8%89%e4%bb%a3%e5%af%b9%e6%af%94&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;三代对比
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;维度&lt;/th&gt;
					&lt;th&gt;第一代：反向代理&lt;/th&gt;
					&lt;th&gt;第二代：API 管理&lt;/th&gt;
					&lt;th&gt;第三代：AI 网关&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;核心能力&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;路由&lt;/td&gt;
					&lt;td&gt;管控&lt;/td&gt;
					&lt;td&gt;智能&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;典型产品&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Nginx、HAProxy&lt;/td&gt;
					&lt;td&gt;Kong、Apigee、Tyk&lt;/td&gt;
					&lt;td&gt;Portkey、LiteLLM、Helicone&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;流量类型&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;HTTP 请求&lt;/td&gt;
					&lt;td&gt;REST/gRPC&lt;/td&gt;
					&lt;td&gt;HTTP + SSE + WebSocket&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;计费维度&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;无&lt;/td&gt;
					&lt;td&gt;请求次数&lt;/td&gt;
					&lt;td&gt;Token 消耗&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;路由策略&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;静态规则&lt;/td&gt;
					&lt;td&gt;权重轮询&lt;/td&gt;
					&lt;td&gt;智能路由（能力/成本/延迟）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;安全能力&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;基础认证&lt;/td&gt;
					&lt;td&gt;OAuth、JWT&lt;/td&gt;
					&lt;td&gt;Prompt 审计、内容过滤&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;监控维度&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;连接数、延迟&lt;/td&gt;
					&lt;td&gt;QPS、错误率&lt;/td&gt;
					&lt;td&gt;Token 用量、模型性能&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id=&#34;传统网关做了什么&#34;&gt;&lt;a href=&#34;#%e4%bc%a0%e7%bb%9f%e7%bd%91%e5%85%b3%e5%81%9a%e4%ba%86%e4%bb%80%e4%b9%88&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;传统网关做了什么
&lt;/h2&gt;&lt;p&gt;在聊 AI 网关之前，先回顾一下传统 API 网关的核心能力。这些能力在 AI 时代依然重要，只是不够了。&lt;/p&gt;
&lt;h3 id=&#34;路由&#34;&gt;&lt;a href=&#34;#%e8%b7%af%e7%94%b1&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;路由
&lt;/h3&gt;&lt;p&gt;最基础的能力。根据请求的 URL、Header、参数，把请求转发到不同的后端服务。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# Kong 路由配置示例&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;routes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;user-service&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;paths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;/api/users&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;service&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;user-service&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;order-service&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;paths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;/api/orders&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;service&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;order-service&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;限流&#34;&gt;&lt;a href=&#34;#%e9%99%90%e6%b5%81&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;限流
&lt;/h3&gt;&lt;p&gt;防止某个用户或某个 API 被过度调用。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# 限流配置示例&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;plugins&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;rate-limiting&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;config&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;minute&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;100&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;policy&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;local&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;认证&#34;&gt;&lt;a href=&#34;#%e8%ae%a4%e8%af%81&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;认证
&lt;/h3&gt;&lt;p&gt;验证请求的合法性，比如 API Key、OAuth Token、JWT。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# JWT 认证配置&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;plugins&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;jwt&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;config&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;key_claim_name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;kid&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;协议转换&#34;&gt;&lt;a href=&#34;#%e5%8d%8f%e8%ae%ae%e8%bd%ac%e6%8d%a2&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;协议转换
&lt;/h3&gt;&lt;p&gt;在不同的协议之间转换，比如 HTTP 转 gRPC。&lt;/p&gt;
&lt;h3 id=&#34;监控&#34;&gt;&lt;a href=&#34;#%e7%9b%91%e6%8e%a7&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;监控
&lt;/h3&gt;&lt;p&gt;收集 API 的调用量、延迟、错误率等指标，用于监控和分析。&lt;/p&gt;
&lt;p&gt;这些能力都很重要，但它们解决的是&amp;quot;传统微服务&amp;quot;的问题。当系统里开始调用大模型，新的问题就来了。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;ai-时代网关面临的新挑战&#34;&gt;&lt;a href=&#34;#ai-%e6%97%b6%e4%bb%a3%e7%bd%91%e5%85%b3%e9%9d%a2%e4%b8%b4%e7%9a%84%e6%96%b0%e6%8c%91%e6%88%98&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;AI 时代网关面临的新挑战
&lt;/h2&gt;&lt;h3 id=&#34;挑战一模型路由&#34;&gt;&lt;a href=&#34;#%e6%8c%91%e6%88%98%e4%b8%80%e6%a8%a1%e5%9e%8b%e8%b7%af%e7%94%b1&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;挑战一：模型路由
&lt;/h3&gt;&lt;p&gt;传统微服务的路由很简单：根据 URL 路径转发到对应的服务。但大模型不一样，你可能有几十个模型：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GPT-4、GPT-3.5、Claude、Gemini、Llama、Qwen……&lt;/li&gt;
&lt;li&gt;不同模型的能力不同、成本不同、延迟不同&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;问题来了：当用户发起一个请求，应该路由到哪个模型？&lt;/p&gt;
&lt;p&gt;如果按传统方式，写死路由规则：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;routes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;gpt4&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;paths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;/api/gpt4&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;gpt35&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;paths&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;/api/gpt35&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这样用户需要自己选择模型，体验很差。更好的方式是智能路由：根据请求的内容、用户的需求、模型的负载情况，自动选择最合适的模型。&lt;/p&gt;
&lt;h3 id=&#34;挑战二token-限流&#34;&gt;&lt;a href=&#34;#%e6%8c%91%e6%88%98%e4%ba%8ctoken-%e9%99%90%e6%b5%81&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;挑战二：Token 限流
&lt;/h3&gt;&lt;p&gt;传统 API 的限流是按请求次数：每分钟 100 次。但大模型的计费是按 Token：输入 Token + 输出 Token。&lt;/p&gt;
&lt;p&gt;一个请求可能消耗 100 个 Token，也可能消耗 10000 个 Token。按请求次数限流没有意义。&lt;/p&gt;
&lt;p&gt;需要的是 Token 级别的限流：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;每个用户每月能用多少 Token&lt;/li&gt;
&lt;li&gt;每个 API Key 每天能用多少 Token&lt;/li&gt;
&lt;li&gt;超出配额后怎么处理（降级、拒绝、排队）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;挑战三流式响应&#34;&gt;&lt;a href=&#34;#%e6%8c%91%e6%88%98%e4%b8%89%e6%b5%81%e5%bc%8f%e5%93%8d%e5%ba%94&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;挑战三：流式响应
&lt;/h3&gt;&lt;p&gt;大模型通常支持流式响应（Streaming），用 Server-Sent Events (SSE) 逐步返回结果。&lt;/p&gt;
&lt;p&gt;传统的 API 网关不太擅长处理流式响应：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;流式响应是长连接，传统网关的超时机制会中断连接&lt;/li&gt;
&lt;li&gt;流式响应的内容分块返回，传统的日志记录方式不适用&lt;/li&gt;
&lt;li&gt;流式响应需要特殊的错误处理机制&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;挑战四成本控制&#34;&gt;&lt;a href=&#34;#%e6%8c%91%e6%88%98%e5%9b%9b%e6%88%90%e6%9c%ac%e6%8e%a7%e5%88%b6&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;挑战四：成本控制
&lt;/h3&gt;&lt;p&gt;大模型的调用成本远高于传统 API。一个复杂的 Prompt 可能花费几美元，如果没有限制，成本会失控。&lt;/p&gt;
&lt;p&gt;需要：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;实时监控 Token 消耗和成本&lt;/li&gt;
&lt;li&gt;设置预算上限&lt;/li&gt;
&lt;li&gt;按部门、按项目分摊成本&lt;/li&gt;
&lt;li&gt;优化 Prompt，降低成本&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;挑战五安全审计&#34;&gt;&lt;a href=&#34;#%e6%8c%91%e6%88%98%e4%ba%94%e5%ae%89%e5%85%a8%e5%ae%a1%e8%ae%a1&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;挑战五：安全审计
&lt;/h3&gt;&lt;p&gt;大模型的输入（Prompt）和输出（Completion）可能包含敏感信息：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用户输入的 Prompt 可能包含个人隐私&lt;/li&gt;
&lt;li&gt;模型输出的内容可能不准确或有误导性&lt;/li&gt;
&lt;li&gt;某些场景需要审计所有的交互记录&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;传统网关的日志记录不够细，需要专门的 Prompt 审计能力。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;ai-网关的核心能力&#34;&gt;&lt;a href=&#34;#ai-%e7%bd%91%e5%85%b3%e7%9a%84%e6%a0%b8%e5%bf%83%e8%83%bd%e5%8a%9b&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;AI 网关的核心能力
&lt;/h2&gt;&lt;p&gt;AI 网关是为了解决上面这些挑战而生的。它有几个核心能力：&lt;/p&gt;
&lt;h3 id=&#34;1-智能路由&#34;&gt;&lt;a href=&#34;#1-%e6%99%ba%e8%83%bd%e8%b7%af%e7%94%b1&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;1. 智能路由
&lt;/h3&gt;&lt;p&gt;智能路由不是简单的 URL 匹配，而是根据多个维度做决策：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;按模型能力路由&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;不同类型的请求，适合不同的模型。比如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;复杂的推理任务 → GPT-4、Claude&lt;/li&gt;
&lt;li&gt;简单的问答 → GPT-3.5、Llama&lt;/li&gt;
&lt;li&gt;代码生成 → CodeLlama、StarCoder&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;按成本路由&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;如果多个模型都能完成任务，选择成本最低的。比如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;简单任务：优先用 GPT-3.5（便宜）&lt;/li&gt;
&lt;li&gt;复杂任务：才用 GPT-4（贵）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;按延迟路由&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;如果用户对延迟敏感，选择响应最快的模型。比如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;实时对话：优先用延迟低的模型&lt;/li&gt;
&lt;li&gt;批量处理：可以用延迟高但质量好的模型&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;按负载路由&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;如果某个模型的请求队列太长，自动切换到其他模型，实现负载均衡。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;13
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;14
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;15
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;16
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;17
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;18
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 智能路由伪代码&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;route_request&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;request&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# 分析请求的复杂度&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;complexity&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;analyze_complexity&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;request&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;prompt&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# 根据复杂度选择候选模型&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;complexity&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.8&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;candidates&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;gpt-4&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;claude-3&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;candidates&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;gpt-3.5&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;llama-3&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# 根据成本和延迟排序&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;candidates&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sort&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;key&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;lambda&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;get_cost&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.6&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;get_latency&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0.4&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;# 选择负载最低的模型&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;best_model&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;min&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;candidates&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[:&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;],&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;key&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;lambda&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;get_queue_length&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;m&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;best_model&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;2-token-级计量与配额&#34;&gt;&lt;a href=&#34;#2-token-%e7%ba%a7%e8%ae%a1%e9%87%8f%e4%b8%8e%e9%85%8d%e9%a2%9d&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;2. Token 级计量与配额
&lt;/h3&gt;&lt;p&gt;AI 网关需要精确计量每个请求的 Token 消耗：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;输入 Token 计量&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;记录每个请求的 Prompt 消耗了多少 Token。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;输出 Token 计量&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;记录每个请求的 Completion 消耗了多少 Token。对于流式响应，需要累加所有分块的 Token。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;配额管理&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;为每个用户、每个 API Key、每个部门设置 Token 配额：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# Token 配额配置示例&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;quotas&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;user&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;user_123&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;daily_limit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;100000&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# 每天 10 万 Token&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;monthly_limit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2000000&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# 每月 200 万 Token&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;department&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;engineering&amp;#34;&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;monthly_limit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;10000000&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;c&#34;&gt;# 每月 1000 万 Token&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;当配额用尽时，可以：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;拒绝请求&lt;/li&gt;
&lt;li&gt;降级到更便宜的模型&lt;/li&gt;
&lt;li&gt;排队等待&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;3-prompt-审计与安全&#34;&gt;&lt;a href=&#34;#3-prompt-%e5%ae%a1%e8%ae%a1%e4%b8%8e%e5%ae%89%e5%85%a8&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;3. Prompt 审计与安全
&lt;/h3&gt;&lt;p&gt;AI 网关需要审计所有的 Prompt 和 Completion：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;敏感信息检测&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;自动检测 Prompt 中是否包含敏感信息（PII、密码、密钥），如果有，自动脱敏或拒绝。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;内容过滤&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;过滤不合规的内容，比如暴力、色情、违法信息。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;审计日志&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;记录所有的交互记录，包括：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;请求时间&lt;/li&gt;
&lt;li&gt;用户信息&lt;/li&gt;
&lt;li&gt;Prompt 内容&lt;/li&gt;
&lt;li&gt;Completion 内容&lt;/li&gt;
&lt;li&gt;使用的模型&lt;/li&gt;
&lt;li&gt;Token 消耗&lt;/li&gt;
&lt;li&gt;成本&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些日志可以用于合规审计、问题排查、成本分析。&lt;/p&gt;
&lt;h3 id=&#34;4-多模型负载均衡&#34;&gt;&lt;a href=&#34;#4-%e5%a4%9a%e6%a8%a1%e5%9e%8b%e8%b4%9f%e8%bd%bd%e5%9d%87%e8%a1%a1&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;4. 多模型负载均衡
&lt;/h3&gt;&lt;p&gt;当有多个模型可用时，AI 网关可以做负载均衡：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;轮询&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;简单的轮询，把请求均匀分配到多个模型。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;加权轮询&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;根据模型的能力、成本设置权重，按比例分配。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;动态调整&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;根据模型的实时性能（延迟、错误率）动态调整权重。如果某个模型响应变慢，自动减少它的流量。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;故障转移&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;如果某个模型故障，自动切换到备用模型，保证服务可用性。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;# 多模型负载均衡配置&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;load_balancing&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;  &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;models&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;gpt-4&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;weight&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;0.3&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;fallback&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;gpt-3.5&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;claude-3&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;weight&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;0.3&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;fallback&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;gpt-3.5&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;    &lt;/span&gt;- &lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;gpt-3.5&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;weight&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;m&#34;&gt;0.4&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;w&#34;&gt;      &lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;fallback&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;llama-3&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;hr&gt;
&lt;h2 id=&#34;架构对比传统网关-vs-ai-网关&#34;&gt;&lt;a href=&#34;#%e6%9e%b6%e6%9e%84%e5%af%b9%e6%af%94%e4%bc%a0%e7%bb%9f%e7%bd%91%e5%85%b3-vs-ai-%e7%bd%91%e5%85%b3&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;架构对比：传统网关 vs AI 网关
&lt;/h2&gt;&lt;p&gt;现在来做一个系统的对比：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;维度&lt;/th&gt;
					&lt;th&gt;传统 API 网关&lt;/th&gt;
					&lt;th&gt;AI 网关&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;路由策略&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;URL 路径匹配&lt;/td&gt;
					&lt;td&gt;智能路由（能力/成本/延迟/负载）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;限流维度&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;请求次数&lt;/td&gt;
					&lt;td&gt;Token 消耗&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;响应类型&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;同步响应&lt;/td&gt;
					&lt;td&gt;同步 + 流式响应（SSE）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;计费方式&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;按请求次数&lt;/td&gt;
					&lt;td&gt;按 Token 消耗&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;安全能力&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;认证、授权&lt;/td&gt;
					&lt;td&gt;认证、授权 + Prompt 审计、内容过滤&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;监控维度&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;QPS、延迟、错误率&lt;/td&gt;
					&lt;td&gt;Token 用量、模型性能、成本&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;负载均衡&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;轮询、加权轮询&lt;/td&gt;
					&lt;td&gt;动态调整、故障转移、智能路由&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;协议支持&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;HTTP、gRPC、WebSocket&lt;/td&gt;
					&lt;td&gt;HTTP、gRPC、WebSocket + SSE&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;缓存策略&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;响应缓存&lt;/td&gt;
					&lt;td&gt;Prompt 缓存、语义缓存&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;典型产品&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;Kong、Apigee、Tyk&lt;/td&gt;
					&lt;td&gt;Portkey、LiteLLM、Helicone&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;架构差异&#34;&gt;&lt;a href=&#34;#%e6%9e%b6%e6%9e%84%e5%b7%ae%e5%bc%82&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;架构差异
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;传统 API 网关架构&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;客户端 → API 网关 → 微服务 A
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                  → 微服务 B
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                  → 微服务 C
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;网关做的事情很简单：路由、认证、限流，然后转发到后端服务。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AI 网关架构&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;客户端 → AI 网关 → 智能路由 → 模型 A (GPT-4)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                             → 模型 B (Claude)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                             → 模型 C (Llama)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;         ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Token 计量
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Prompt 审计
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    成本监控
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;AI 网关做的事情更多：智能路由、Token 计量、Prompt 审计、成本监控。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;实际案例某-saas-平台的网关迁移&#34;&gt;&lt;a href=&#34;#%e5%ae%9e%e9%99%85%e6%a1%88%e4%be%8b%e6%9f%90-saas-%e5%b9%b3%e5%8f%b0%e7%9a%84%e7%bd%91%e5%85%b3%e8%bf%81%e7%a7%bb&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;实际案例：某 SaaS 平台的网关迁移
&lt;/h2&gt;&lt;h3 id=&#34;背景&#34;&gt;&lt;a href=&#34;#%e8%83%8c%e6%99%af&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;背景
&lt;/h3&gt;&lt;p&gt;某 SaaS 平台提供智能客服服务，使用 Kong 作为 API 网关。2023 年开始集成大模型，为客户提供智能问答功能。&lt;/p&gt;
&lt;p&gt;最初的做法很简单：在 Kong 后面加一个模型服务，所有的大模型请求都通过这个服务转发。&lt;/p&gt;
&lt;h3 id=&#34;问题暴露&#34;&gt;&lt;a href=&#34;#%e9%97%ae%e9%a2%98%e6%9a%b4%e9%9c%b2&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;问题暴露
&lt;/h3&gt;&lt;p&gt;随着业务增长，问题逐渐暴露：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. 成本失控&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;客户的使用量快速增长，但没有有效的成本控制机制。有些客户的 Prompt 很长，消耗大量 Token，但按请求次数计费，平台亏本。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. 模型选择困难&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;平台接入了多个模型（GPT-4、GPT-3.5、Claude），但没有智能路由机制。所有请求都发到 GPT-4，成本高、延迟大。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. 缺乏审计&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;客户投诉模型回答不准确，但平台没有完整的审计日志，无法排查问题。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. 流式响应不稳定&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Kong 对流式响应的支持不完善，经常出现连接中断、数据丢失。&lt;/p&gt;
&lt;h3 id=&#34;迁移方案&#34;&gt;&lt;a href=&#34;#%e8%bf%81%e7%a7%bb%e6%96%b9%e6%a1%88&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;迁移方案
&lt;/h3&gt;&lt;p&gt;2024 年初，平台决定迁移到专门的 AI 网关。经过评估，选择了 Portkey。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;迁移步骤：&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;并行运行&lt;/strong&gt;：新旧网关同时运行，逐步切流&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;配置迁移&lt;/strong&gt;：把 Kong 的路由规则迁移到 Portkey&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;功能验证&lt;/strong&gt;：验证智能路由、Token 计量、Prompt 审计等功能&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;全量切换&lt;/strong&gt;：确认无问题后，全量切换到 Portkey&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;迁移效果&#34;&gt;&lt;a href=&#34;#%e8%bf%81%e7%a7%bb%e6%95%88%e6%9e%9c&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;迁移效果
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;指标&lt;/th&gt;
					&lt;th&gt;迁移前 (Kong)&lt;/th&gt;
					&lt;th&gt;迁移后 (Portkey)&lt;/th&gt;
					&lt;th&gt;改善&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;模型调用成本&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;$15,000/月&lt;/td&gt;
					&lt;td&gt;$9,500/月&lt;/td&gt;
					&lt;td&gt;-37%&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;平均延迟&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;3.2s&lt;/td&gt;
					&lt;td&gt;2.1s&lt;/td&gt;
					&lt;td&gt;-34%&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;流式响应成功率&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;87%&lt;/td&gt;
					&lt;td&gt;99%&lt;/td&gt;
					&lt;td&gt;+12%&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;审计覆盖率&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;30%&lt;/td&gt;
					&lt;td&gt;100%&lt;/td&gt;
					&lt;td&gt;+70%&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;客户满意度&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;3.8/5&lt;/td&gt;
					&lt;td&gt;4.5/5&lt;/td&gt;
					&lt;td&gt;+0.7&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;成本降低的原因：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;智能路由：简单任务自动路由到 GPT-3.5，复杂任务才用 GPT-4&lt;/li&gt;
&lt;li&gt;Token 限流：防止客户过度使用&lt;/li&gt;
&lt;li&gt;Prompt 缓存：重复的 Prompt 直接返回缓存结果&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;延迟降低的原因：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;智能路由：选择延迟最低的模型&lt;/li&gt;
&lt;li&gt;负载均衡：避免单个模型过载&lt;/li&gt;
&lt;li&gt;流式响应优化：Portkey 对 SSE 的支持更好&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id=&#34;网关的未来从流量入口到智能中枢&#34;&gt;&lt;a href=&#34;#%e7%bd%91%e5%85%b3%e7%9a%84%e6%9c%aa%e6%9d%a5%e4%bb%8e%e6%b5%81%e9%87%8f%e5%85%a5%e5%8f%a3%e5%88%b0%e6%99%ba%e8%83%bd%e4%b8%ad%e6%9e%a2&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;网关的未来：从流量入口到智能中枢
&lt;/h2&gt;&lt;p&gt;AI 网关不只是&amp;quot;支持大模型的 API 网关&amp;quot;，它代表了一种新的架构理念：&lt;strong&gt;网关从流量入口变成智能中枢。&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;趋势一网关即-ai-编排层&#34;&gt;&lt;a href=&#34;#%e8%b6%8b%e5%8a%bf%e4%b8%80%e7%bd%91%e5%85%b3%e5%8d%b3-ai-%e7%bc%96%e6%8e%92%e5%b1%82&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;趋势一：网关即 AI 编排层
&lt;/h3&gt;&lt;p&gt;未来的网关不只是转发请求，还会做复杂的 AI 编排：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;把一个复杂任务拆分成多个子任务&lt;/li&gt;
&lt;li&gt;调用多个模型，组合结果&lt;/li&gt;
&lt;li&gt;做 RAG（检索增强生成），先检索再生成&lt;/li&gt;
&lt;li&gt;做 Agent 编排，调用多个工具&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这相当于把 AI 编排逻辑从应用层下沉到网关层。&lt;/p&gt;
&lt;h3 id=&#34;趋势二网关即数据层&#34;&gt;&lt;a href=&#34;#%e8%b6%8b%e5%8a%bf%e4%ba%8c%e7%bd%91%e5%85%b3%e5%8d%b3%e6%95%b0%e6%8d%ae%e5%b1%82&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;趋势二：网关即数据层
&lt;/h3&gt;&lt;p&gt;AI 应用需要大量的上下文数据：用户画像、历史对话、知识库。未来的网关可能会集成向量数据库，直接在网关层做检索和上下文构建。&lt;/p&gt;
&lt;h3 id=&#34;趋势三网关即安全层&#34;&gt;&lt;a href=&#34;#%e8%b6%8b%e5%8a%bf%e4%b8%89%e7%bd%91%e5%85%b3%e5%8d%b3%e5%ae%89%e5%85%a8%e5%b1%82&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;趋势三：网关即安全层
&lt;/h3&gt;&lt;p&gt;随着 AI 应用的普及，安全问题会越来越突出。未来的网关会成为 AI 安全的第一道防线：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Prompt 注入检测&lt;/li&gt;
&lt;li&gt;敏感信息过滤&lt;/li&gt;
&lt;li&gt;输出内容审核&lt;/li&gt;
&lt;li&gt;合规审计&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;API 网关的演进，反映了技术架构的演进。从反向代理到 API 管理，再到 AI 网关，每一次升级都是为了应对新的挑战。&lt;/p&gt;
&lt;p&gt;AI 网关不是传统网关的替代品，而是补充。在未来的架构中，传统 API 网关和 AI 网关会并存：传统网关处理微服务流量，AI 网关处理大模型流量。&lt;/p&gt;
&lt;p&gt;关键是理解自己的需求，选择合适的工具。如果你的系统里开始大量调用大模型，那么 AI 网关就不是可选项，而是必选项。&lt;/p&gt;
&lt;p&gt;网关这扇门，该升级了。&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
