Files
tabbyAPI/gen_logging.py
kingbri 98a7b951b9 Logging: Add newlines to Prompt and Response
Makes things clearer rather than adding an extra space.

Signed-off-by: kingbri <bdashore3@proton.me>
2023-12-22 23:55:22 -05:00

68 lines
1.6 KiB
Python

"""
Functions for logging generation events.
"""
from typing import Dict
from pydantic import BaseModel
from logger import init_logger
logger = init_logger(__name__)
class LogConfig(BaseModel):
"""Logging preference config."""
prompt: bool = False
generation_params: bool = False
# Global reference to logging preferences
CONFIG = LogConfig()
def update_from_dict(options_dict: Dict[str, bool]):
"""Wrapper to set the logging config for generations"""
global CONFIG
# Force bools on the dict
for value in options_dict.values():
if value is None:
value = False
CONFIG = LogConfig.model_validate(options_dict)
def broadcast_status():
"""Broadcasts the current logging status"""
enabled = []
if CONFIG.prompt:
enabled.append("prompts")
if CONFIG.generation_params:
enabled.append("generation params")
if len(enabled) > 0:
logger.info("Generation logging is enabled for: " + ", ".join(enabled))
else:
logger.info("Generation logging is disabled")
def log_generation_params(**kwargs):
"""Logs generation parameters to console."""
if CONFIG.generation_params:
logger.info(f"Generation options: {kwargs}\n")
def log_prompt(prompt: str):
"""Logs the prompt to console."""
if CONFIG.prompt:
formatted_prompt = "\n" + prompt
logger.info(f"Prompt: {formatted_prompt if prompt else 'Empty'}\n")
def log_response(response: str):
"""Logs the response to console."""
if CONFIG.prompt:
formatted_response = "\n" + response
logger.info(f"Response: {formatted_response if response else 'Empty'}\n")