API 参考
Lens 通过 Node BFF 暴露一个同源 HTTP API;浏览器只调用
/api/... 路径,Vite 会在开发环境中将其代理到 Node 后端。
Node 后端将领域调用转发给 Python FastAPI 后端(llm_d_lens),
后者负责校验、持久化和任务执行。
flowchart LR
UI["Lens UI"] --> BFF["Node BFF :3000"]
BFF -->|领域 API,包括 /api/v1/deployments| PY["Python API (llm_d_lens)"]
BFF -->|/api/remote-deploy| SSH["Remote host over SSH"]
PY --> DB["Database"]
PY --> K8s["Kubernetes"]
Deploy 属于 Lens Python 后端,并非独立的 llm-d-bench API。
部署路由的 BFF 上游依次取 LLM_D_DEPLOY_API_URL、SIMULATION_API_URL、
OPTIMALBENCH_URL,最后回退到 http://127.0.0.1:8081。
本地开发使用 scripts/lens-local.sh start;当前启动与存储设置参见
安装和环境变量,不要沿用主机专属的 /root/... 路径。
请求需要已认证的 Lens 会话及相应权限;非安全方法还需要匹配的 prism_csrf Cookie
和 x-prism-csrf 请求头。未登录的冒烟请求可能返回 401,而不是资源列表。
接口
| 接口 | 说明 |
|---|---|
| Node BFF | 浏览器使用的同源 /api/... 路由;代理到 Python API,并托管 MCP 工具。 |
| Python API | 用于部署、模拟、评估、存储、监控和认证的 FastAPI 路由。 |
| MCP 工具 | 从后端路由生成、可供助手调用的操作,纳入 MCP 目录。 |
| Kubernetes 后端 | 通过官方 Python 客户端进行的服务端 Kubernetes 访问,支持 CLI 回滚。 |
模块
每个 Lens 模块都有一个专属页面,涵盖其后端 HTTP 端点, 以及(如果存在的话)如何直接调用其 Python 服务层 (供内部脚本、测试或自动化使用)而不是通过 HTTP:
每个 Python 后端端点也都记录在生成的 FastAPI OpenAPI schema 中。 在后端路由发生变化后,重新生成它:
source .venv/bin/activate
npm run docs:api
约定
每一个新增或修改的、可供外部调用的 API(FastAPI 路由、HTTP 处理器、
RPC/MCP 工具及其请求/响应契约)都必须使其描述与实际实现的行为、
校验逻辑、授权、默认值、状态码和 schema 保持一致。参见
.github/instructions/api-documentation.instructions.md 中仓库对
API 描述的要求。