跳到主要内容

架构

Lens 是一个三层系统:一个浏览器单页应用、一个负责提供 UI 并代理 API 流量的应用层, 以及一个拥有领域逻辑、访问控制、持久化、Kubernetes 访问权限和模型服务控制平面的控制平面。 同一个控制平面负责配置和协调模型服务数据面,而模型推理流量则通过共享网关流转, 而不是经过浏览器的 API 路径。

Lens 系统架构

分层​

层职责
客户端使用 Lens 控制台的浏览器、兼容 OpenAI 的模型客户端,以及诸如 IDE 智能体之类的 MCP 客户端。
应用层提供 Web 控制台、解析已登录用户、执行路由级别的鉴权、将 API 流量代理给控制平面,并托管无状态的 MCP 端点。
控制平面拥有领域服务、访问控制和集群范围划分、持久化、文件与制品存储、集群操作、部署规划,以及模型服务控制平面。
数据面一个集群共享的 llm-d 网关(在创建集群时可选择提供方),加上每个模型一个 HTTPRoute/IPP;每个部署拥有自己的 InferencePool + EPP 以及 vLLM 副本。
存储用于应用状态的关系型数据库,以及用于制品和部署包的文件存储。

请求流程​

  1. 浏览器调用一个同源的 Lens 端点。
  2. 应用层解析调用方的会话,剥离可伪造的请求头,执行它自己负责的 任何路由级别权限检查,并带着调用方的身份把 API 调用转发给控制平面。
  3. 控制平面重新解析调用方身份,检查该路由所需的权限, 并拒绝未认证、未授权或 CSRF 校验失败的请求。
  4. 匹配到的领域服务处理该请求,读写数据库,必要时访问文件存储, 并使用集群访问权限对 Kubernetes 执行操作。
  5. 按集群划分范围的资源会被收窄到调用方可以访问的集群, 否则写操作会被直接拒绝。
  6. 模型推理是一条独立的路径:客户端使用网关令牌调用共享网关, 网关对请求进行鉴权、选择目标,并将其转发到正确的集群和部署。

访问模型​

访问控制围绕一个拥有全局、集群或资源范围角色绑定的主体来建模。 全局管理员可以访问每一个集群;按集群划分范围的维护者只能访问 被授予给他们的集群。请求默认被拒绝,每个路由都映射到一个所需的权限, 并且相同的范围划分规则在各个领域中被一致地应用,因此列表查询、 发布、使用情况报告和网关操作都保持在调用方可访问的集群范围之内。

部署规划​

智能体部署规划是一个部署时的、检索增强的推荐步骤,而不是一个运行时调度器。 它会校验请求、收集实时的集群信息,并从容量估算、历史部署、 已完成的模拟和基准测试结果中检索支持性证据。然后它只对通过校验的 候选方案进行排序,并保存一条推荐结果;在有人批准之前,不会部署任何东西。

设计细节参阅智能体部署,了解规划器与审批流程; 参阅规划证据与 RAG,了解证据来源与检索方式。

模型服务网关​

模型服务网关将集群部署以兼容 OpenAI 的服务形式发布到集群的共享 llm-d 网关之后。控制平面管理服务、提供方、令牌和使用情况, 并在创建集群时安装共享网关;网关对每个请求进行鉴权,并将其路由到 模型服务的 InferencePool,由其 Endpoint Picker 选择端点。 各个部署保留自己的 InferencePool + EPP,但不运行任何代理。

相关内容​