针对 LLM 智能路由服务多用户访问管理复杂、服务状态难以及时感知及配置变更成本高等运维挑战,WebUI 工作台以可视化界面提供多用户角色管理与独立 API Key 分配、实时监控及配置热更新能力,在实现用户身份隔离与访问审计的同时,大幅降低服务运维复杂度。
功能概述
工作台支持按需开启用户管理功能,不开启时提供以下功能模块:
实时监控:展示吞吐量、延迟、TTFT 等近实时性能指标及状态码分布,以及 Gateway、Scheduler 和推理实例的运行状态,帮助快速发现异常、定位性能瓶颈。
配置中心:支持分流代理、调度策略、请求限流、流量镜像等核心参数的热更新,无需重启服务即可生效,适合生产环境的动态调优。详情请参见配置中心。
智能对话:提供可视化的对话测试界面,支持直接向智能路由服务发送文本或图片请求,并通过 HTTP 日志辅助调试,便于快速验证分流代理效果。
开启后可建立完整的用户管理体系,适用于企业内多团队共用 LLM 服务的场景,额外提供以下功能模块:
数据概览:从全局视角展示各用户/部门的 Token 消耗、请求量分布等使用情况,支持按时间范围和用户维度过滤,帮助管理员掌握服务使用全貌、识别高用量用户。
用户管理:用户的增删改查、启用/禁用、API Key 管理等。也可以通过API进行用户管理操作,详情请参见用户管理 API 参考。
审计日志:记录登录/登出、用户增删改、API Key 重置、配置中心变更等管理操作的时间、操作人、资源对象等,支持按时间范围、操作类型和操作人过滤,便于合规审计与问题追溯。
用户中心:供用户自助管理个人资料、查看和重置自己的 API Key,并查看个人维度的请求统计与 Token 消耗记录。
不同角色在工作台中可访问的功能模块不同:
角色 | 权限 |
普通用户 | 智能对话、用户中心(查看个人统计数据) |
管理员 | 普通用户的全部权限 + 数据概览(查看所有用户统计)、实时监控、配置中心(只读) |
系统管理员 | 管理员的全部权限 + 用户管理、审计日志、配置中心(读写) |
访问工作台
前提条件:已部署 LLM 智能路由服务,或已部署包含 LLM 智能路由服务的聚合服务。
操作步骤:
登录PAI控制台,进入EAS的推理服务页签。
找到目标 LLM 智能路由服务。
在该服务的调用 / 日志 / 监控列,单击 Web 应用图标。
在弹出的窗口中找到WebUI工作台,进入管理员工作台。
管理员在工作台的用户管理页面创建用户后,该用户可通过用户登录入口使用API Key登录WebUI工作台。
配置中心
配置中心提供 LLM 智能路由各项核心配置的热更新能力,无需重启服务即可生效。如下是主要配置的生效作用环节。
配置类型 | 说明 |
调度策略 | 配置请求调度到推理实例的策略,PD 分离模式下可分别配置 Prefill 和 Decode 阶段的策略。 |
模型路由 | 根据请求中的 model 字段路由到对应的实例;若该 model 无匹配,则使用配置的默认模型处理该请求。 |
分流代理 | 将请求按模型前缀或权重代理转发到配置的外部上游 API 服务。 |
请求限流 | 对后端请求并发量进行限制。超限时可选择直接拒绝或排队等待,支持按整体生命周期、Prefill 阶段、Decode 阶段分别设置并发上限。 分流代理中的外部服务(如阿里云百炼)遵循其自身限流规则,不受此配置影响。 |
流量镜像 | 将线上请求按比例复制到目标地址,用于灰度验证、性能对比或数据采集,不影响正常响应。 |
全球调度 | 当前地域工作站推理资源紧缺时,可将业务流量调度至其他空闲地域的推理服务实例,实现全球算力统筹调配与资源高效复用。 |
用户管理 API 参考
认证方式:所有 API 需要在请求头中携带系统管理员 API Key:Authorization: Bearer <admin_api_key>。
调用时,将下文中的 https://gateway.example.com 替换为 LLM 智能路由地址,如http://xxx.cn-shanghai.pai-eas.aliyuncs.com/api/predict/ai_assistant.ai_gw。
1. 用户查询
检查用户是否已存在(根据工号查询)。
请求:GET /api/users/check?employee_id={employee_id}
参数:
参数 | 类型 | 必填 | 说明 |
employee_id | string | 是 | 员工工号 |
示例:
curl -X GET "https://gateway.example.com/api/users/check?employee_id=12345" \
-H "Authorization: Bearer <admin_api_key>"2. 用户注册
创建新用户并获取 API Key。
请求:POST /api/users
参数:
参数 | 类型 | 必填 | 说明 |
name | string | 是 | 用户姓名 |
string | 否 | 邮箱地址 | |
employee_id | string | 否 | 员工工号 |
department | string | 否 | 部门 |
role | string | 否 | 角色,默认 user,可选 admin |
metadata | object | 否 | 扩展信息 |
示例:
curl -X POST "https://gateway.example.com/api/users" \
-H "Authorization: Bearer <admin_api_key>" \
-H "Content-Type: application/json" \
-d '{"name":"张三","email":"zhang***@company.com","employee_id":"12345","department":"技术部"}'3. 查询用户
查询所有用户或单个用户信息。
请求:
GET /api/users(查询所有用户)GET /api/users/{user_id}(查询单个用户)
示例:
# 查询所有用户
curl -X GET "https://gateway.example.com/api/users" \
-H "Authorization: Bearer <admin_api_key>"
# 查询单个用户
curl -X GET "https://gateway.example.com/api/users/user_xxx" \
-H "Authorization: Bearer <admin_api_key>"4. 重置 API Key
重置用户的 API Key,返回新的 Key。
请求:POST /api/users/{user_id}/regenerate-key
示例:
curl -X POST "https://gateway.example.com/api/users/user_xxx/regenerate-key" \
-H "Authorization: Bearer <admin_api_key>"5. 更新用户
更新用户信息。
请求:PUT /api/users/{user_id}
参数:
参数 | 类型 | 必填 | 说明 |
name | string | 是 | 用户姓名 |
string | 否 | 邮箱地址 | |
employee_id | string | 否 | 员工工号 |
department | string | 否 | 部门 |
role | string | 否 | 角色,默认 user,可选 admin |
enabled | boolean | 否 | 是否启用 |
metadata | object | 否 | 扩展信息 |
示例:
curl -X PUT "https://gateway.example.com/api/users/user_xxx" \
-H "Authorization: Bearer <admin_api_key>" \
-H "Content-Type: application/json" \
-d '{"department":"新产品部","email":"zhang***@newcompany.com"}'6. 删除用户
删除指定用户。
请求:DELETE /api/users/{user_id}
示例:
curl -X DELETE "https://gateway.example.com/api/users/user_xxx" \
-H "Authorization: Bearer <admin_api_key>"7. 用户配置(Provision)
Provision API 用于创建新用户或重置 API Key,并生成一个一次性的配置链接。用户通过该链接可获取 API Key。相比直接创建用户(POST /api/users),Provision 方式更安全:
用户通过专属链接获取 API Key,无需明文传输
链接 24 小时后自动过期
链接只能使用一次,使用后失效
7.1 创建用户并发送配置链接
请求:POST /api/provision
示例:
curl -X POST "https://gateway.example.com/api/provision" \
-H "Authorization: Bearer <admin_api_key>" \
-H "Content-Type: application/json" \
-d '{
"name": "张三",
"email": "zhang***@company.com",
"employee_id": "12345",
"department": "技术部"
}'7.2 重置 API Key 并发送配置链接
当用户已存在但需要重新获取 API Key 时使用。
请求:POST /api/provision/reset
示例:
curl -X POST "https://gateway.example.com/api/provision/reset" \
-H "Authorization: Bearer <admin_api_key>" \
-H "Content-Type: application/json" \
-d '{"employee_id":"12345"}'7.3 验证配置链接(用户访问)
用户打开 provision_url 后,前端调用此接口验证 token 并获取用户信息和 API Key。
请求:GET /api/provision/verify?token={token}
8. 典型使用流程
新用户注册(Provision 方式,推荐)
Provision 方式通过一次性链接传递 API Key,更安全。
# 1. 创建用户并获取配置链接
curl -X POST "https://gateway.example.com/api/provision" \
-H "Authorization: Bearer <admin_api_key>" \
-H "Content-Type: application/json" \
-d '{"name":"张三","email":"zhang***@company.com","employee_id":"12345","department":"技术部"}'
# 2. 将返回的 provision_url 发送给用户(邮件、IM 等)
# 3. 用户打开链接,页面自动调用 /api/provision/verify 获取 API Key新用户注册(直接创建方式)
# 1. 检查用户是否已存在
curl -X GET "https://gateway.example.com/api/users/check?employee_id=12345" \
-H "Authorization: Bearer <admin_api_key>"
# 2. 如果不存在,创建用户
curl -X POST "https://gateway.example.com/api/users" \
-H "Authorization: Bearer <admin_api_key>" \
-H "Content-Type: application/json" \
-d '{"name":"张三","employee_id":"12345","department":"技术部"}'
# 3. 将返回的 api_key 发送给用户离职处理(禁用/删除)
# 禁用用户(推荐)
curl -X PUT "https://gateway.example.com/api/users/user_xxx" \
-H "Authorization: Bearer <admin_api_key>" \
-H "Content-Type: application/json" \
-d '{"enabled": false}'
# 或删除用户
curl -X DELETE "https://gateway.example.com/api/users/user_xxx" \
-H "Authorization: Bearer <admin_api_key>"遗忘 API Key(Provision 方式,推荐)
# 通过工号重置并发送配置链接
curl -X POST "https://gateway.example.com/api/provision/reset" \
-H "Authorization: Bearer <admin_api_key>" \
-H "Content-Type: application/json" \
-d '{"employee_id":"12345"}'
# 将返回的 provision_url 发送给用户遗忘 API Key(直接重置方式)
# 通过工号查询用户
curl -X GET "https://gateway.example.com/api/users/check?employee_id=12345" \
-H "Authorization: Bearer <admin_api_key>"
# 使用返回的 user_id 重置 API Key
curl -X POST "https://gateway.example.com/api/users/user_xxx/regenerate-key" \
-H "Authorization: Bearer <admin_api_key>"常见问题
Q:为什么 WebUI 中显示的缓存命中率为 0?
该指标依赖推理服务在运行时上报缓存命中数据。请检查目标 EAS 服务的运行命令是否包含 --enable-cache-report 参数;若未添加,即使实际命中缓存,工作台也无法采集到上报数据,命中率会显示为 0。