Saltar al contenido principal

Comprender el registro en Open WebUI 🪵

El registro es esencial para depurar, monitorear y comprender cómo está funcionando Open WebUI. Esta guía explica cómo funciona el registro tanto en el cliente del navegador (frontend) como en el servidor de aplicaciones/backend.

🖥️ Registro del cliente del navegador (Frontend)

Para el desarrollo y depuración del frontend, Open WebUI utiliza el registro estándar de la consola del navegador. Esto significa que puedes ver los registros directamente dentro de las herramientas de desarrollo integradas de tu navegador web.

Cómo acceder a los registros del navegador:

  1. Abrir herramientas de desarrollo: En la mayoría de los navegadores, puedes abrir las herramientas de desarrollo mediante:

    • Hacer clic derecho en cualquier lugar de la página de Open WebUI y seleccionar "Inspeccionar" o "Inspeccionar elemento".
    • Presionar F12 (o Cmd+Opt+I en macOS).
  2. Navegar a la pestaña "Consola": Dentro del panel de herramientas de desarrollo, busca y haz clic en la pestaña "Consola".

Tipos de registros del navegador:

Open WebUI utiliza principalmente console.log() de JavaScript para el registro del lado del cliente. Verás varios tipos de mensajes en la consola, incluyendo:

  • Mensajes informativos: Flujo general de la aplicación y estado.
  • Advertencias: Problemas potenciales o errores no críticos.
  • Errores: Problemas que podrían estar afectando la funcionalidad.

Herramientas de desarrollo específicas del navegador:

Los diferentes navegadores ofrecen herramientas de desarrollo ligeramente diferentes, pero todos proporcionan una consola para ver los registros de JavaScript. Aquí tienes enlaces a la documentación de los navegadores más populares:

⚙️ Registro en el servidor de aplicaciones/backend (Python)

El backend de Open WebUI utiliza el módulo integrado logging de Python para registrar eventos e información en el lado del servidor. Estos registros son cruciales para comprender el comportamiento del servidor, diagnosticar errores y monitorear el rendimiento.

Conceptos clave:

  • Módulo logging de Python: Open WebUI aprovecha la biblioteca estándar logging de Python. Si estás familiarizado con el registro en Python, esta sección te resultará sencilla. (Para información más detallada, consulta la documentación de registro en Python).
  • Salida en la consola: Por defecto, los registros del backend se envían a la consola (salida estándar), lo que los hace visibles en tu terminal o registros del contenedor de Docker.
  • Niveles de registro: Los niveles de registro controlan la cantidad de detalles de los registros. Puedes configurar Open WebUI para mostrar más o menos información detallada según estos niveles.

🚦 Explicación de los niveles de registro

El registro en Python utiliza una jerarquía de niveles para categorizar los mensajes de registro según su gravedad. Aquí tienes un desglose de los niveles, de mayor a menor gravedad:

NivelValor numéricoDescripciónCaso de uso
CRITICAL50Errores graves que pueden llevar a la terminación de la aplicación.Fallos catastróficos, corrupción de datos.
ERROR40Errores que indican problemas pero la aplicación podría seguir funcionando.Errores recuperables, operaciones fallidas.
WARNING30Problemas potenciales o situaciones inesperadas que deberían investigarse.Advertencias de depreciación, restricciones de recursos.
INFO20Mensajes informativos generales sobre la operación de la aplicación.Mensajes de inicio, eventos clave, flujo normal de operación.
DEBUG10Información detallada para la depuración destinada a desarrolladores.Llamadas de funciones, valores de variables, pasos detallados de ejecución.
NOTSET0Todos los mensajes se registran. (Usualmente predeterminado a WARNING si no se establece).Útil para capturar absolutamente todo, típicamente para depuración muy específica.

Nivel predeterminado: El nivel de registro predeterminado de Open WebUI es INFO.

🌍 Nivel de registro global (GLOBAL_LOG_LEVEL)

Puedes cambiar el nivel de registro global para todo el backend de Open WebUI utilizando la variable de entorno GLOBAL_LOG_LEVEL. Esta es la forma más sencilla de controlar la cantidad de detalles en los registros.

Cómo funciona:

Configurar GLOBAL_LOG_LEVEL ajusta el logger raíz en Python, afectando a todos los loggers en Open WebUI y potencialmente a algunas bibliotecas de terceros que usan basicConfig. Utiliza logging.basicConfig(force=True), lo que significa que sobrescribirá cualquier configuración existente del logger raíz.

Ejemplo: Configuración a DEBUG

  • Parámetro de Docker:

    --env GLOBAL_LOG_LEVEL="DEBUG"
  • Docker Compose (docker-compose.yml):

    environment:
    - GLOBAL_LOG_LEVEL=DEBUG

Impacto: Configurar GLOBAL_LOG_LEVEL a DEBUG producirá los registros más detallados, incluyendo información útil para desarrollo y resolución de problemas. Para entornos de producción, INFO o WARNING podrían ser más apropiados para reducir el volumen de registros.

⚙️ Niveles de registro específicos de la aplicación/backend

Para un control más granular, Open WebUI proporciona variables de entorno para configurar niveles de registro para componentes específicos del backend. La gestión de registros es una tarea en progreso, pero se ofrece cierto nivel de control utilizando estas variables de entorno. Estas permiten ajustar los registros para diferentes partes de la aplicación.

Variables de entorno disponibles:

Variable de EntornoComponente/MóduloDescripción
AUDIO_LOG_LEVELProcesamiento de audioRegistro relacionado con la transcripción de audio (faster-whisper), texto a habla (TTS) y manejo de audio.
COMFYUI_LOG_LEVELIntegración de ComfyUIRegistro de interacciones con ComfyUI, si estás utilizando esta integración.
CONFIG_LOG_LEVELGestión de configuraciónRegistro relacionado con la carga y procesamiento de archivos de configuración de Open WebUI.
DB_LOG_LEVELOperaciones de base de datos (Peewee)Registro de interacciones con bases de datos utilizando el ORM Peewee (Object-Relational Mapper).
IMAGES_LOG_LEVELGeneración de imágenes (AUTOMATIC1111/Stable Diffusion)Registro para tareas de generación de imágenes, especialmente al usar la integración de AUTOMATIC1111 Stable Diffusion.
MAIN_LOG_LEVELEjecución principal de la aplicación (Logger raíz)Registro desde el punto de entrada principal de la aplicación y el logger raíz.
MODELS_LOG_LEVELGestión de modelosRegistro relacionado con la carga, gestión e interacción con modelos de lenguaje (LLMs), incluyendo la autenticación.
OLLAMA_LOG_LEVELIntegración del backend OllamaRegistro de la comunicación e interacción con el backend Ollama.
OPENAI_LOG_LEVELIntegración de la API de OpenAIRegistro de interacciones con la API de OpenAI (por ejemplo, para modelos como GPT).
RAG_LOG_LEVELGeneración aumentada por recuperación (RAG)Registro del flujo de trabajo RAG, incluyendo la base de datos de vectores Chroma y Sentence-Transformers.
WEBHOOK_LOG_LEVELWebhook de autenticaciónRegistro extendido para la funcionalidad del webhook de autenticación.

Cómo usar:

Puedes configurar estas variables de entorno de la misma manera que GLOBAL_LOG_LEVEL (parámetros de Docker, sección environment de Docker Compose). Por ejemplo, para obtener registros más detallados sobre las interacciones con Ollama, podrías configurar:

environment:
- OLLAMA_LOG_LEVEL=DEBUG

Nota importante: A diferencia de GLOBAL_LOG_LEVEL, estas variables específicas de la aplicación podrían no afectar el registro de todos los módulos de terceros. Principalmente controlan los registros dentro del código base de Open WebUI.

Al entender y utilizar estos mecanismos de registro, puedes monitorear, depurar y obtener información eficaz sobre tu instancia de Open WebUI.