技术深度解析
Selixes 构建为一个反向代理网关,位于企业应用与多个 LLM 提供商(OpenAI、Anthropic、Google、通过 vLLM 或 Ollama 部署的开源模型等)之间。其架构轻量且容器化,设计用于在单台服务器或 Kubernetes 集群中自托管。核心创新在于两个紧密集成的子系统:原子预算引擎与 PII 脱敏管道。
原子预算引擎
与传统的速率限制或月度支出上限不同,Selixes 实现了每请求成本核算。对于每次 API 调用,网关计算精确的 token 数量(输入 + 输出),并乘以在 YAML 文件中配置的提供商每 token 价格。这笔成本会从用户、团队或项目级别的预算中实时扣除。如果预算在请求中途耗尽,网关要么让调用失败,要么触发故障转移到更便宜或备用的模型。该预算之所以是“原子级”的,是因为它在请求发送之前就进行检查和扣除,从而防止任何超支。这是通过一个高性能内存计数器(类似于令牌桶算法,但以货币价值为单位)实现的,并持久化到本地 SQLite 数据库以支持崩溃恢复。开源仓库(GitHub: `selixes/selixes`,目前约 2800 星)提供了针对 OpenAI、Anthropic 和 Google Gemini API 的详细配置示例。
PII 脱敏管道
PII 脱敏模块作为网关内的一个中间件层运行。它结合正则表达式模式(用于信用卡号、社保号、电子邮件地址、电话号码)和一个轻量级命名实体识别模型(例如 spaCy 的 `en_core_web_trf` 的蒸馏版本)来检测和屏蔽敏感数据。脱敏同时应用于用户提示词和模型响应,确保没有 PII 泄露出去或进入。该管道是可配置的:企业可以定义自定义模式(例如患者 ID、账号),并选择屏蔽(例如 `[REDACTED]`)或假名化(替换为一致的哈希值)。由于脱敏发生在网关层,开发者无需修改应用代码——这是一个显著的运维优势。网关还会记录脱敏事件(不含实际 PII),用于审计追踪。
故障转移与负载均衡
Selixes 支持多种故障转移策略:基于优先级(先尝试模型 A,如果 A 失败或超出预算则回退到 B)、基于延迟(路由到响应最快的模型)以及基于成本(路由到满足最低质量阈值的最便宜模型)。网关通过定期 ping 持续监控模型健康状态,并跟踪延迟和错误率。这实现了真正的弹性 AI 基础设施:在高峰需求期间,网关可以自动将流量从昂贵的 GPT-4o 转移到通过 vLLM 本地部署的更便宜的 Mixtral 8x22B,在控制成本的同时保持服务连续性。
| 特性 | Selixes | 传统 API 网关(例如 Kong、AWS API Gateway) | 定制内部解决方案 |
|---|---|---|---|
| 每请求成本核算 | 是,原子级 | 否 | 需要定制开发 |
| 网关层 PII 脱敏 | 是,内置 | 否 | 需要定制中间件 |
| 多模型故障转移 | 是,支持成本/延迟策略 | 仅限于简单重试 | 可能但复杂 |
| 自托管数据主权 | 是 | 否(云托管) | 是 |
| 开源 | 是(MIT) | 部分(Kong 是开放核心) | 不适用 |
| 部署复杂度 | 低(单个 Docker 容器) | 中等 | 高 |
数据要点: Selixes 将三个关键特性——原子级成本控制、PII 脱敏和智能故障转移——整合在一起,而这些特性在通用 API 网关中缺失,且难以内部构建。这种整合降低了运维开销,消除了对多个点解决方案的需求。
关键参与者与案例研究
Selixes 由一家欧洲金融科技公司的一小群前基础设施工程师开发,他们亲身经历了不受控的 LLM 成本和隐私审计的痛苦。该项目在开源社区中获得了关注,尤其是在那些无法负担企业级解决方案(如 Azure OpenAI Service 或 AWS Bedrock 的托管网关)的初创公司和中等规模企业中。
竞品解决方案
存在多种商业和开源替代方案,但没有一个能在单个自托管包中同时提供所有三个特性:
- Portkey(开源):提供带有成本跟踪和故障转移的网关,但其 PII 脱敏功能有限,且高级功能需要付费计划。其预算上限是月度的,而非原子级的每请求。
- Helicone(开源):专注于可观测性和日志记录,带有基本的成本跟踪。没有内置的 PII 脱敏或原子级预算。
- Lunary(开源):提供 LLM 使用控制面板,但其预算执行是软性的(事后告警,而非硬阻断)。
- Azure API Management:支持请求级策略,但 PII 脱敏需要自定义策略实现,且原子级成本核算并非原生功能。