WebUI 工作台是 LLM 智能路由的可视化管理界面,提供多用户角色管理与独立 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。