项目简介与架构
Legate
面向团队和平台的多租户 LLM 模型网关
Legate 位于应用与模型 API 之间,为 OpenAI、Anthropic 等调用格式提供统一认证、协议转换、模型组路由、故障转移和调用分析。应用只连接一个稳定入口,上游接入点、凭据、模型与流量策略由网关独立管理。
Legate 要解决什么问题¶
| 问题 | Legate 的处理方式 |
|---|---|
| 上游协议和凭据散落在应用中 | 由 Endpoint 与 Driver 集中保存连接和转换规则 |
| 上游模型名或厂商经常变化 | 用稳定的模型组名称作为调用方 model |
| 重试和降级语义不一致 | 按 tier、weight、错误分类和熔断状态统一选路 |
| 调用权限过宽 | API 密钥显式绑定允许访问的模型组 |
| 边缘调用跨区延迟高 | Sidecar 拉取快照后本地执行,或鉴权后转发 Central |
| 成本和流状态不可见 | 分开记录请求与每次 Endpoint attempt,并标注遥测完整度 |
Legate 不训练或托管模型。它负责调用进入上游 API 前后的安全、协议和路由边界。
项目架构¶
| 组件 | 当前职责 |
|---|---|
| Legate Central | Workspace、身份与权限、配置存储、Sidecar 快照、中央模型代理、调用遥测 |
| Legate Console | Endpoint、Driver、模型组、API 密钥、Sidecar、运行统计和平台用户管理 |
| Legate Sidecar | 周期拉取 Workspace 快照,本地认证与路由,或把 reference 模型组转发到 Central |
| Proxy Core | API 密钥认证、协议解析、候选选择、熔断、故障转移、HTTP I/O 和调用记录 |
| Driver | 声明精确协议契约,转换请求、buffered 响应和文本流事件 |
| PostgreSQL | 唯一持久化后端 |
| Redis | 多进程之间共享 Endpoint 与 Mapping 熔断状态;单进程可使用内存实现 |
控制面¶
管理员通过 Console 或 /api/admin/* 管理 Workspace 内的 Endpoint、Driver、模型组和凭据。Central 把配置持久化到 PostgreSQL,并为 Sidecar 生成带 revision 的一致快照。
数据面¶
调用方携带 Legate API 密钥访问 Central 或 Sidecar。Proxy Core 先确定 Workspace 和模型组授权,再按协议契约、tier、weight 与熔断状态选择 Endpoint。Driver 只产生受验证的请求计划;网络和真实凭据始终由 Core 持有。
Sidecar 数据面¶
full:快照包含本地路由所需 Endpoint、Driver、模型和凭据,Sidecar 本地执行。reference:快照只包含认证和稳定模型组身份,请求由 Sidecar 鉴权后安全转发到 Central。
当前调用入口¶
| API 格式 | 入口 | 模式 |
|---|---|---|
| OpenAI Chat Completions | POST /v1/chat/completions |
buffered、SSE |
| OpenAI Responses | POST /v1/responses |
buffered、SSE |
| Anthropic Messages | POST /v1/messages |
buffered、SSE |
| OpenAI Images Generations | POST /v1/images/generations |
buffered |
| OpenAI Images Edits | POST /v1/images/edits |
buffered multipart |
调用方入口与上游协议可以不同。例如 OpenAI Chat Completions 请求可以由 Anthropic Endpoint 执行,前提是模型组暴露该精确入站 Contract,Endpoint Driver 也声明支持它。
开始使用¶
- 使用Docker Compose 本机部署拉取镜像并启动 Central 与 Console。
- 创建 Endpoint Group 和 Endpoint。
- 创建模型组,选择对外协议并添加 Endpoint Model 映射。
- 创建 API 密钥并绑定模型组,然后发出第一次请求。
- 共享环境启用OIDC,需要就近执行时再部署Sidecar。