sherpa_ai.verbose_loggers package#
Overview#
The verbose_loggers package provides advanced logging capabilities for Sherpa AI, enabling detailed tracking and visualization of agent operations, model interactions, and system events.
Key Components
BaseVerboseLogger: Core logging interface that defines the logging protocol
Specialized Loggers: Various logger implementations for different logging needs
Formatting Tools: Utilities for formatting and presenting log information
Example Usage#
from sherpa_ai.verbose_loggers import ConsoleLogger
from sherpa_ai.orchestrator import Orchestrator
from sherpa_ai.agents import QAAgent
# Create a logger
logger = ConsoleLogger(log_level="INFO")
# Create an agent with verbose logging
agent = QAAgent(verbose_logger=logger)
# Create an orchestrator with the agent
orchestrator = Orchestrator(agents=[agent], verbose_logger=logger)
# Process a query with detailed logging
orchestrator.process("What is artificial intelligence?")
Submodules#
Module |
Description |
|---|---|
Contains the BaseVerboseLogger class that defines the core logging interface and protocols. |
|
Implements various logger types including console loggers, file loggers, and specialized formatters. |
sherpa_ai.verbose_loggers.base module#
Base verbose logger module for Sherpa AI.
This module provides the abstract base class for verbose loggers, defining the interface that all verbose loggers must implement.
- class sherpa_ai.verbose_loggers.base.BaseVerboseLogger[source]#
Bases:
ABCAbstract base class for verbose loggers.
This class defines the interface for verbose loggers in the system. All concrete logger implementations must inherit from this class and implement the log method.
Example
>>> class MyLogger(BaseVerboseLogger): ... def log(self, message: str): ... print(f"LOG: {message}") >>> logger = MyLogger() >>> logger.log("Hello") 'LOG: Hello'
sherpa_ai.verbose_loggers.verbose_loggers module#
Verbose logger implementations for Sherpa AI.
This module provides concrete implementations of verbose loggers for different purposes, including Slack messaging, testing, file logging, and no-op logging.
- class sherpa_ai.verbose_loggers.verbose_loggers.SlackVerboseLogger(logger, thread_ts)[source]#
Bases:
BaseVerboseLoggerVerbose logger for Slack messaging.
This logger sends messages to a Slack channel or thread using the Bolt framework’s say utility function.
- logger#
Bolt’s say function for sending messages.
- Type:
Callable[[str], None]
- thread_ts#
Timestamp of the Slack thread to post in.
- Type:
str
Example
>>> def say_func(msg, thread_ts): ... print(f"Slack({thread_ts}): {msg}") >>> logger = SlackVerboseLogger(say_func, "1234567890") >>> logger.log("Hello Slack!") 'Slack(1234567890): Hello Slack!'
- logger: Callable[[str], None]#
- thread_ts: str#
- class sherpa_ai.verbose_loggers.verbose_loggers.DummyVerboseLogger[source]#
Bases:
BaseVerboseLoggerNo-op verbose logger.
This logger discards all messages without processing them. It’s useful when verbose logging is disabled but the logging interface is still needed.
Example
>>> logger = DummyVerboseLogger() >>> logger.log("This message is ignored") # Does nothing
- class sherpa_ai.verbose_loggers.verbose_loggers.StorageVerboseLogger[source]#
Bases:
BaseVerboseLoggerIn-memory storage verbose logger.
This logger stores all messages in a list for later inspection. It’s particularly useful for testing and debugging purposes.
- storage#
List of stored messages.
- Type:
List[str]
Example
>>> logger = StorageVerboseLogger() >>> logger.log("First message") >>> logger.log("Second message") >>> print(logger.storage) ['First message', 'Second message']
- storage: List[str]#
- class sherpa_ai.verbose_loggers.verbose_loggers.FileVerboseLogger(file_path, append_mode=True)[source]#
Bases:
BaseVerboseLoggerFile-based verbose logger.
This logger writes messages to a local file with timestamps. It’s useful for persistent logging that can be reviewed later or used for debugging.
- file_path#
Path to the log file.
- Type:
str
- append_mode#
Whether to append to existing file or overwrite.
- Type:
bool
Example
>>> logger = FileVerboseLogger("usage.log") >>> logger.log("User used 100 tokens") >>> # Message is written to usage.log with timestamp
Module contents#
Verbose logging package for Sherpa AI.
This package provides various logging implementations for verbose output in different contexts. It includes loggers for Slack messaging, file logging, testing, and no-op scenarios.
Example
>>> from sherpa_ai.verbose_loggers import StorageVerboseLogger
>>> logger = StorageVerboseLogger()
>>> logger.log("Test message")
>>> print(logger.storage)
['Test message']
>>> from sherpa_ai.verbose_loggers import FileVerboseLogger
>>> file_logger = FileVerboseLogger("usage.log")
>>> file_logger.log("Usage data logged to file")
- class sherpa_ai.verbose_loggers.DummyVerboseLogger[source]#
Bases:
BaseVerboseLoggerNo-op verbose logger.
This logger discards all messages without processing them. It’s useful when verbose logging is disabled but the logging interface is still needed.
Example
>>> logger = DummyVerboseLogger() >>> logger.log("This message is ignored") # Does nothing
- class sherpa_ai.verbose_loggers.FileVerboseLogger(file_path, append_mode=True)[source]#
Bases:
BaseVerboseLoggerFile-based verbose logger.
This logger writes messages to a local file with timestamps. It’s useful for persistent logging that can be reviewed later or used for debugging.
- file_path#
Path to the log file.
- Type:
str
- append_mode#
Whether to append to existing file or overwrite.
- Type:
bool
Example
>>> logger = FileVerboseLogger("usage.log") >>> logger.log("User used 100 tokens") >>> # Message is written to usage.log with timestamp
- class sherpa_ai.verbose_loggers.SlackVerboseLogger(logger, thread_ts)[source]#
Bases:
BaseVerboseLoggerVerbose logger for Slack messaging.
This logger sends messages to a Slack channel or thread using the Bolt framework’s say utility function.
- logger#
Bolt’s say function for sending messages.
- Type:
Callable[[str], None]
- thread_ts#
Timestamp of the Slack thread to post in.
- Type:
str
Example
>>> def say_func(msg, thread_ts): ... print(f"Slack({thread_ts}): {msg}") >>> logger = SlackVerboseLogger(say_func, "1234567890") >>> logger.log("Hello Slack!") 'Slack(1234567890): Hello Slack!'
- logger: Callable[[str], None]#
- thread_ts: str#
- class sherpa_ai.verbose_loggers.StorageVerboseLogger[source]#
Bases:
BaseVerboseLoggerIn-memory storage verbose logger.
This logger stores all messages in a list for later inspection. It’s particularly useful for testing and debugging purposes.
- storage#
List of stored messages.
- Type:
List[str]
Example
>>> logger = StorageVerboseLogger() >>> logger.log("First message") >>> logger.log("Second message") >>> print(logger.storage) ['First message', 'Second message']
- storage: List[str]#