Skip to content

管理后台

LLM Fence 当前使用 Rust 服务内置的管理端,不再依赖旧版 Python FastAPI 管理后台。server.admin_ui = true 时,release 二进制会在根路径 / 挂载内置前端;管理 API 统一位于 /api/admin/*

启用管理端

toml
[server]
admin_ui = true
public_origin = "https://llm.example.com"
frontend_origin = "https://llm.example.com"
cookie_secure = true
cookie_same_site = "lax"

同源部署时 public_originfrontend_origin 通常相同。分离部署或本地 Vite 开发时,public_origin 必须仍然指向后端地址,因为 OAuth 回调会打到后端。

首次初始化

首次启动后,如果还没有管理员用户,管理端会进入初始化流程:

  1. 创建第一个 super_admin
  2. 初始化运行配置。
  3. 创建 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/adminSecureSameSitellm-fence.toml 控制。

除登录、初始化、注册、退出、OAuth 回调等白名单外,所有管理端 POST / PATCH / PUT / DELETE 请求都需要携带:

  • admin_session Cookie
  • X-CSRF-Token 请求头

CSRF token 可从登录、初始化或 GET /api/admin/auth/me 响应中获取,前端只应保存在内存中。

飞书登录

当前外部登录 Provider 支持飞书。飞书开放平台回调地址必须配置为:

text
{public_origin}/api/admin/auth/providers/feishu/callback

回调成功后,服务端设置管理端 Cookie 并跳转到 frontend_origin。飞书 token、refresh token、tenant token 和完整 user_info 不会持久化;用户记录只保存飞书 open_idname 快照。

API 文档

Debug 构建默认挂载管理 API 文档。Release 构建默认关闭,如需临时查看,启动时追加:

bash
llm-fence --admin-docs

访问:

text
GET /api/admin/docs
GET /api/admin/openapi.json

文档站的 管理 API 页面也嵌入了同一份 OpenAPI 规格。