Spaces:
Sleeping
Sleeping
| import logging | |
| import sys | |
| from os import getpid | |
| from typing import Dict, Literal | |
| import psutil | |
| import structlog | |
| from llm_guard.util import configure_logger as configure_llm_guard_logger | |
| LOG_LEVELS = Literal["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"] | |
| EXTERNAL_LOGGERS = { | |
| "transformers", | |
| } | |
| def configure_logger(log_level: LOG_LEVELS = "INFO"): | |
| """ | |
| Configures the logger for the package. | |
| Args: | |
| log_level: The log level to use for the logger. It should be one of the following strings: | |
| "DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL". | |
| """ | |
| logging.basicConfig( | |
| format="[%(asctime)s - %(name)s - %(levelname)s] %(message)s", | |
| level=log_level, | |
| stream=sys.stdout, | |
| ) | |
| structlog.configure(logger_factory=structlog.stdlib.LoggerFactory()) | |
| for log_name in EXTERNAL_LOGGERS: | |
| logging.getLogger(log_name).setLevel(logging.WARNING) | |
| configure_llm_guard_logger(log_level) | |
| def get_resource_utilization() -> Dict: | |
| """ | |
| Returns the current resource utilization of the system. | |
| Returns: | |
| A dictionary containing the current resource utilization of the system. | |
| """ | |
| process = psutil.Process(getpid()) | |
| # A float representing the current system-wide CPU utilization as a percentage | |
| cpu_percent = process.cpu_percent() | |
| # A float representing process memory utilization as a percentage | |
| memory_percent = process.memory_percent() | |
| # Total physical memory | |
| total_memory_bytes = psutil.virtual_memory().total | |
| return { | |
| "cpu_utilization_percent": cpu_percent, | |
| "memory_utilization_percent": memory_percent, | |
| "total_memory_available_bytes": total_memory_bytes, | |
| } | |