管理后台
LLM Fence 当前使用 Rust 服务内置的管理端,不再依赖旧版 Python FastAPI 管理后台。server.admin_ui = true 时,release 二进制会在根路径 / 挂载内置前端;管理 API 统一位于 /api/admin/*。
启用管理端
[server]
admin_ui = true
public_origin = "https://llm.example.com"
frontend_origin = "https://llm.example.com"
cookie_secure = true
cookie_same_site = "lax"同源部署时 public_origin 和 frontend_origin 通常相同。分离部署或本地 Vite 开发时,public_origin 必须仍然指向后端地址,因为 OAuth 回调会打到后端。
首次初始化
首次启动后,如果还没有管理员用户,管理端会进入初始化流程:
- 创建第一个
super_admin。 - 初始化运行配置。
- 创建 Provider、模型和业务 Key。
运行配置初始化后写入 MongoDB runtime_configs.active。后续更新会使用版本号乐观锁,并归档旧版本到 runtime_config_revisions。
页面能力
| 功能 | 说明 |
|---|---|
| 概览 | 请求量、Token 用量、模型和 Key 排行 |
| Provider | 上游 Provider 与模型配置 |
| Processor | 策略、日志、格式转换和审计配置 |
| Key | 创建、禁用、删除、轮换和编辑策略 |
| 用户 | 管理管理员用户 |
| 日志 | 请求日志和错误来源筛选 |
| 审计 | AI 审计日志查询 |
| 设置 | 登录偏好、飞书 OAuth、通用配置 |
认证与 CSRF
管理后台登录使用 admin_session HttpOnly Cookie。Cookie Path 固定为 /api/admin,Secure 和 SameSite 由 llm-fence.toml 控制。
除登录、初始化、注册、退出、OAuth 回调等白名单外,所有管理端 POST / PATCH / PUT / DELETE 请求都需要携带:
admin_sessionCookieX-CSRF-Token请求头
CSRF token 可从登录、初始化或 GET /api/admin/auth/me 响应中获取,前端只应保存在内存中。
飞书登录
当前外部登录 Provider 支持飞书。飞书开放平台回调地址必须配置为:
{public_origin}/api/admin/auth/providers/feishu/callback回调成功后,服务端设置管理端 Cookie 并跳转到 frontend_origin。飞书 token、refresh token、tenant token 和完整 user_info 不会持久化;用户记录只保存飞书 open_id 与 name 快照。
API 文档
Debug 构建默认挂载管理 API 文档。Release 构建默认关闭,如需临时查看,启动时追加:
llm-fence --admin-docs访问:
GET /api/admin/docs
GET /api/admin/openapi.json文档站的 管理 API 页面也嵌入了同一份 OpenAPI 规格。