El banco de trabajo WebUI es una interfaz de gestión visual para el enrutamiento inteligente de LLM. Ofrece gestión de usuarios basada en roles, asignación independiente de API Key, monitoreo en tiempo real y actualizaciones de configuración en caliente. Esto permite el aislamiento de identidades de usuario y la auditoría de accesos, lo que reduce la complejidad operativa.
Descripción general de funciones
Puede habilitar la función de gestión de usuarios en el banco de trabajo según sus necesidades. Cuando esta función está deshabilitada, el banco de trabajo proporciona los siguientes módulos:
Monitoreo en tiempo real: Muestra métricas de rendimiento casi en tiempo real, como throughput, latencia y TTFT, junto con la distribución de códigos de estado y el estado operativo del gateway, el programador y las instancias de inference. Esto le ayuda a detectar anomalías rápidamente e identificar cuellos de botella en el rendimiento.
Centro de configuración: Admite actualizaciones en caliente para parámetros principales, incluidos el proxy de división de tráfico, la directiva de programación, la limitación de solicitudes y la duplicación de tráfico. Los cambios surten efecto de inmediato sin necesidad de reiniciar el servicio, lo que resulta ideal para ajustes dinámicos en entornos de producción. Para obtener más información, consulte configuration center.
Chat inteligente: Proporciona una interfaz visual para pruebas de chat. Puede enviar solicitudes de texto o imagen directamente al servicio de enrutamiento inteligente de LLM y usar registros HTTP para depuración, lo que le permite validar rápidamente el comportamiento del proxy de división de tráfico.
Al habilitar la gestión de usuarios se crea un sistema integral de usuarios, ideal para empresas donde varios equipos comparten un servicio de LLM. Esto añade los siguientes módulos:
Resumen de datos: Muestra el consumo de tokens y la distribución del volumen de solicitudes por usuario y departamento. Puede filtrar los datos por rango de tiempo y dimensión de usuario para ayudar a los administradores a identificar a los usuarios con mayor uso.
Gestión de usuarios: Permite crear, consultar, actualizar y eliminar usuarios, así como habilitarlos o deshabilitarlos y gestionar sus API Keys. También puede realizar estas operaciones mediante una API. Para obtener más información, consulte user management API reference.
Registro de auditoría: Registra operaciones de gestión como inicios y cierres de sesión, modificaciones de usuarios, restablecimientos de API Key y cambios de configuración. Registra la hora, el operador y el objeto de recurso de cada acción. Puede filtrar los registros por hora, tipo de operación y operador para auditorías de cumplimiento y rastreo de incidencias.
Centro de usuario: Los usuarios pueden gestionar sus perfiles, ver y restablecer su propia API Key, y revisar sus estadísticas personales de solicitudes y registros de consumo de tokens.
Los módulos disponibles para cada rol son los siguientes:
|
Rol |
Permisos |
|
usuario regular |
chat inteligente, centro de usuario (ver estadísticas personales) |
|
administrador |
Todos los permisos de un usuario regular, además de: resumen de datos (ver estadísticas de todos los usuarios), Monitoreo en tiempo real, centro de configuración (solo lectura) |
|
administrador del sistema |
Todos los permisos de un administrador, además de: gestión de usuarios, registro de auditoría, centro de configuración (lectura y escritura) |
Acceso al banco de trabajo
Requisitos previos: Ha desplegado un servicio de enrutamiento inteligente de LLM o un servicio agregado que incluye un servicio de enrutamiento inteligente de LLM.
Procedimiento:
Inicie sesión en la PAI console y vaya a la pestaña de servicios de inference de EAS.
Localice el servicio de enrutamiento inteligente de LLM deseado.
En la columna Invocation / Logs / Monitoring del servicio, haga clic en el icono de web app.
-
En la ventana emergente, localice el banco de trabajo WebUI y abra el banco de trabajo de administración.
Después de que un administrador crea un usuario en la página de gestión de usuarios, el usuario puede iniciar sesión en el banco de trabajo WebUI a través del User Login portal con su API Key.
Centro de configuración
El centro de configuración admite actualizaciones en caliente para las configuraciones principales del enrutamiento inteligente de LLM, las cuales surten efecto de inmediato sin necesidad de reiniciar el servicio. El siguiente diagrama muestra las etapas en las que se aplica cada configuración.
|
Tipo de configuración |
Descripción |
|
directiva de programación |
Configura la directiva para programar solicitudes hacia una instancia de inference. En el modo de separación PD, puede configurar directivas independientes para la fase Prefill y la fase Decode. |
|
enrutamiento de modelos |
Dirige las solicitudes a la instancia correspondiente según el campo |
|
proxy de división de tráfico |
Reenvía solicitudes a servicios de API externos ascendentes configurados según un prefijo de modelo o un peso. |
|
limitación de solicitudes |
Limita la concurrencia de las solicitudes al backend. Cuando se supera el límite, puede elegir rechazar las solicitudes de inmediato o ponerlas en cola. Puede establecer límites de concurrencia independientes para el ciclo de vida general, la fase Prefill y la fase Decode. Los servicios externos especificados en el proxy de división de tráfico, como DashScope, están sujetos a sus propias reglas de limitación y no se ven afectados por esta configuración. |
|
duplicación de tráfico |
Copia un porcentaje del tráfico de producción a una dirección destino. Se utiliza para validaciones canary, comparaciones de rendimiento o recolección de datos, sin afectar la respuesta normal. |
|
programación global |
Cuando los recursos de inference en la región actual son insuficientes, el programador dirige el tráfico a instancias de servicios de inference en otras regiones inactivas. Esto permite la agrupación global de cómputo y la reutilización eficiente de recursos. |
Referencia de API de gestión de usuarios
Autenticación: Todas las llamadas a la API deben incluir la API Key del administrador del sistema en el encabezado de la solicitud: Authorization: Bearer <admin_api_key>.
Al realizar llamadas, reemplace https://gateway.example.com en los ejemplos con su endpoint de enrutamiento inteligente de LLM, por ejemplo http://xxx.cn-shanghai.pai-eas.aliyuncs.com/api/predict/ai_assistant.ai_gw.
1. Comprobar usuario
Comprueba si existe un usuario según el ID de empleado.
Solicitud: GET /api/users/check?employee_id={employee_id}
Parámetros:
|
Parámetro |
Tipo |
Obligatorio |
Descripción |
|
employee_id |
string |
Sí |
ID de empleado. |
Ejemplo:
curl -X GET "https://gateway.example.com/api/users/check?employee_id=12345" \
-H "Authorization: Bearer <admin_api_key>"
2. Crear usuario
Crea un nuevo usuario y devuelve su API Key.
Solicitud: POST /api/users
Parámetros:
|
Parámetro |
Tipo |
Obligatorio |
Descripción |
|
name |
string |
Sí |
Nombre del usuario. |
|
|
string |
No |
Dirección de correo electrónico. |
|
employee_id |
string |
No |
ID de empleado. |
|
department |
string |
No |
Departamento. |
|
role |
string |
No |
Rol del usuario. Valor predeterminado: |
|
metadata |
object |
No |
Información extendida. |
Ejemplo:
curl -X POST "https://gateway.example.com/api/users" \
-H "Authorization: Bearer <admin_api_key>" \
-H "Content-Type: application/json" \
-d '{"name":"John Doe","email":"john.doe@company.com","employee_id":"12345","department":"Engineering"}'
3. Consultar usuarios
Recupera información sobre todos los usuarios o un solo usuario.
Solicitud:
GET /api/users(recupera todos los usuarios)GET /api/users/{user_id}(recupera un solo usuario)
Ejemplo:
# Retrieve all users
curl -X GET "https://gateway.example.com/api/users" \
-H "Authorization: Bearer <admin_api_key>"
# Retrieve a single user
curl -X GET "https://gateway.example.com/api/users/user_xxx" \
-H "Authorization: Bearer <admin_api_key>"
4. Restablecer API key
Restablece la API Key de un usuario y devuelve la nueva clave.
Solicitud: POST /api/users/{user_id}/regenerate-key
Ejemplo:
curl -X POST "https://gateway.example.com/api/users/user_xxx/regenerate-key" \
-H "Authorization: Bearer <admin_api_key>"
5. Actualizar usuario
Actualiza la información de un usuario.
Solicitud: PUT /api/users/{user_id}
Parámetros:
|
Parámetro |
Tipo |
Obligatorio |
Descripción |
|
name |
string |
Sí |
Nombre del usuario. |
|
|
string |
No |
Dirección de correo electrónico. |
|
employee_id |
string |
No |
ID de empleado. |
|
department |
string |
No |
Departamento. |
|
role |
string |
No |
Rol del usuario. Valor predeterminado: |
|
enabled |
boolean |
No |
Especifica si el usuario está habilitado. |
|
metadata |
object |
No |
Información extendida. |
Ejemplo:
curl -X PUT "https://gateway.example.com/api/users/user_xxx" \
-H "Authorization: Bearer <admin_api_key>" \
-H "Content-Type: application/json" \
-d '{"department":"New Product","email":"john.doe@newcompany.com"}'
6. Eliminar usuario
Elimina un usuario específico.
Solicitud: DELETE /api/users/{user_id}
Ejemplo:
curl -X DELETE "https://gateway.example.com/api/users/user_xxx" \
-H "Authorization: Bearer <admin_api_key>"
7. Aprovisionamiento de usuarios
La API de aprovisionamiento crea un nuevo usuario o restablece una API Key y luego genera un enlace de aprovisionamiento de un solo uso. El usuario puede usar este enlace para recuperar su API Key. En comparación con la creación directa de usuarios (POST /api/users), el método de aprovisionamiento es más seguro:
Los usuarios recuperan su API Key mediante un enlace dedicado, lo que evita que la clave se transmita en texto plano.
El enlace caduca automáticamente después de 24 horas.
El enlace solo se puede usar una vez y deja de ser válido tras su uso.
7.1 Aprovisionar un nuevo usuario
Solicitud: POST /api/provision
Ejemplo:
curl -X POST "https://gateway.example.com/api/provision" \
-H "Authorization: Bearer <admin_api_key>" \
-H "Content-Type: application/json" \
-d '{
"name": "John Doe",
"email": "john.doe@company.com",
"employee_id": "12345",
"department": "Engineering"
}'
7.2 Restablecer clave mediante aprovisionamiento
Utilice este método cuando un usuario ya existe pero necesita una nueva API Key.
Solicitud: POST /api/provision/reset
Ejemplo:
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 Verificar enlace de aprovisionamiento
Después de que el usuario abre la provision_url, la página web llama a este endpoint para verificar el token y recuperar la información del usuario y la API Key.
Solicitud: GET /api/provision/verify?token={token}
8. Flujos de trabajo típicos
Registro de nuevo usuario (aprovisionamiento)
El método de aprovisionamiento entrega la API Key mediante un enlace de un solo uso, lo cual es más seguro.
# 1. Create a user and get the provisioning link.
curl -X POST "https://gateway.example.com/api/provision" \
-H "Authorization: Bearer <admin_api_key>" \
-H "Content-Type: application/json" \
-d '{"name":"John Doe","email":"john.doe@company.com","employee_id":"12345","department":"Engineering"}'
# 2. Send the returned provision_url to the user (for example, by email or instant message).
# 3. The user opens the link, and the page automatically calls /api/provision/verify to retrieve the API Key.
Registro de nuevo usuario (creación directa)
# 1. Check if the user already exists.
curl -X GET "https://gateway.example.com/api/users/check?employee_id=12345" \
-H "Authorization: Bearer <admin_api_key>"
# 2. If the user does not exist, create the user.
curl -X POST "https://gateway.example.com/api/users" \
-H "Authorization: Bearer <admin_api_key>" \
-H "Content-Type: application/json" \
-d '{"name":"John Doe","employee_id":"12345","department":"Engineering"}'
# 3. Send the returned api_key to the user.
Baja de usuario (deshabilitar o eliminar)
# Disable the user (recommended).
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}'
# Alternatively, delete the user.
curl -X DELETE "https://gateway.example.com/api/users/user_xxx" \
-H "Authorization: Bearer <admin_api_key>"
Recuperar API key (aprovisionamiento)
# Reset the key by employee ID and send a new provisioning link.
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"}'
# Send the returned provision_url to the user.
Recuperar API key (restablecimiento directo)
# Check for the user by employee ID.
curl -X GET "https://gateway.example.com/api/users/check?employee_id=12345" \
-H "Authorization: Bearer <admin_api_key>"
# Use the returned user_id to reset the API Key.
curl -X POST "https://gateway.example.com/api/users/user_xxx/regenerate-key" \
-H "Authorization: Bearer <admin_api_key>"
Preguntas frecuentes
P: ¿Por qué la tasa de aciertos de caché es del 0 % en el banco de trabajo?
R: Esta métrica requiere que el servicio de inference reporte datos de aciertos de caché durante la ejecución. Los distintos motores de inference requieren diferentes parámetros de inicio:
Motor SGLang: Agregue el parámetro
--enable-cache-reportal comando de inicio.Motor vLLM: Agregue el parámetro
--enable-prompt-tokens-detailsal comando de inicio.
Sin el parámetro correspondiente, el banco de trabajo no puede recopilar los datos, lo que provoca que la tasa de aciertos de caché se muestre como 0 % incluso si se producen aciertos.