LLM-Guard / app /util.py
SSK-14's picture
Add LLM guard api
acb544e
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,
}