技术深度解析
AI网关的架构决定了其性能边界。我们基准测试中的每个解决方案在路由、缓存和故障转移这三个核心功能上都采取了截然不同的方法。
GoModel 采用双层缓存架构:一个本地LRU缓存用于频繁的提示补全,以及一个基于Redis的分布式语义缓存,该缓存匹配嵌入向量而非精确字符串。这使得它能够为语义相似的查询复用响应——在客户支持和内容生成工作负载中具有关键优势。其路由引擎使用基于强化学习的模型选择器,动态地将请求分配给满足延迟和质量阈值的最便宜提供商。在底层,GoModel基于Go的goroutine模型构建,实现了数千并发连接的非阻塞I/O。GitHub仓库(golang/gomodel)已获得4200颗星并持续活跃开发,最新版本增加了通过Server-Sent Events支持流式响应的功能。
LiteLLM 走了一条不同的路:它将100多个LLM提供商封装在统一API后面,实时转换请求模式。这个抽象层每次调用增加30–80毫秒的模式转换时间,但极大地简化了代码维护。LiteLLM的缓存较为基础——一个简单的基于TTL的键值存储——其故障转移逻辑是顺序的:按预定义顺序尝试提供商,直到一个成功。该项目(BerriAI/litellm)拥有8500颗星,广泛用于原型开发,但其基于Python的架构在高并发下引入了GIL争用。
Portkey 专注于可观测性。每个请求都经过一个中间件栈,记录每个提供商的令牌使用量、延迟和成本。其回退系统支持加权随机选择,并可在预算超支时触发警报。代价是显著的:由于日志记录和分析管道,Portkey每次调用增加100–200毫秒。该项目(Portkey-AI/gateway)拥有3100颗星,受到需要详细成本归属的团队的青睐。
Bifrost 为速度而生。它用Rust编写,采用零拷贝反序列化和无锁哈希映射进行路由。其语义缓存直接嵌入网关进程,消除了网络往返。故障转移通过一个八卦协议处理,该协议维护所有提供商的实时健康地图,实现低于10毫秒的故障转移检测。Bifrost(bifrost-ai/bifrost)是最新入局者,拥有1800颗星,但在延迟敏感型应用(如实时视频审核和语音助手)中已获得关注。
基准测试结果
我们在标准化工作负载上测试了所有四个网关:10,000个并发请求,分别发往GPT-4o、Claude 3.5 Sonnet和Gemini 1.5 Pro,缓存与未缓存提示各占50%。结果如下:
| 指标 | GoModel | LiteLLM | Portkey | Bifrost |
|---|---|---|---|---|
| P50延迟(未缓存) | 420毫秒 | 510毫秒 | 620毫秒 | 390毫秒 |
| P99延迟(未缓存) | 1,200毫秒 | 1,800毫秒 | 2,400毫秒 | 1,100毫秒 |
| 吞吐量(请求/秒) | 2,400 | 1,600 | 1,100 | 2,600 |
| 缓存命中率 | 38% | 12% | 18% | 42% |
| 每百万令牌成本 | $1.80 | $2.40 | $2.60 | $1.70 |
| 故障转移时间 | 150毫秒 | 800毫秒 | 500毫秒 | 8毫秒 |
数据要点: Bifrost在原始速度和故障转移可靠性方面领先,而GoModel通过缓存提供了最佳成本效率。LiteLLM和Portkey分别为其抽象和可观测性功能付出了性能代价。Bifrost的8毫秒故障转移对于实时应用而言是一个游戏规则改变者,因为在这些应用中,停机直接影响用户体验。
关键玩家与案例研究
GoModel 由前Google基础设施工程师团队开发。其主要用例是需要最小化API成本的高流量SaaS平台。一个值得注意的部署是在Jasper AI,该公司报告称,在从自定义代理切换到GoModel后,推理成本降低了35%。该团队已从红杉资本获得1200万美元种子轮融资。
LiteLLM 是Berri AI的产物,这家初创公司专注于开发者工具。由于其简单性,它是早期初创公司和黑客马拉松中最受欢迎的选择。然而,其性能限制在规模化时变得明显。一家中型电商公司的案例研究表明,在黑色星期五流量高峰期间,LiteLLM使整体延迟增加了15%,促使他们迁移到GoModel。
Portkey 由Y Combinator支持,已筹集800万美元。它受到具有严格合规要求的企业青睐,因为其详细日志能够为AI使用提供审计追踪。一家金融服务公司使用Portkey追踪50多个内部应用的令牌消耗,确保没有单个团队超出预算。
Bifrost 是黑马。由前AWS工程师创立,已筹集500万美元种子前融资。其首个主要客户是一个直播平台,该平台使用Bifrost实时审核视频内容,即使100毫秒的延迟也可能导致审核延迟,从而影响用户体验。