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:
ABC
Abstract 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, and no-op logging.
- class sherpa_ai.verbose_loggers.verbose_loggers.SlackVerboseLogger(logger, thread_ts)[source]#
Bases:
BaseVerboseLogger
Verbose 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:
BaseVerboseLogger
No-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:
BaseVerboseLogger
In-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
]#
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, testing, and no-op scenarios.
Example
>>> from sherpa_ai.verbose_loggers import StorageVerboseLogger
>>> logger = StorageVerboseLogger()
>>> logger.log("Test message")
>>> print(logger.storage)
['Test message']
- class sherpa_ai.verbose_loggers.DummyVerboseLogger[source]#
Bases:
BaseVerboseLogger
No-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.SlackVerboseLogger(logger, thread_ts)[source]#
Bases:
BaseVerboseLogger
Verbose 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!'
- log(message)[source]#
Send a message to Slack.
- Parameters:
message (str) – Message to send to Slack.
-
logger:
Callable
[[str
],None
]#
-
thread_ts:
str
#
- class sherpa_ai.verbose_loggers.StorageVerboseLogger[source]#
Bases:
BaseVerboseLogger
In-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']
- log(message)[source]#
Store a message in the internal list.
- Parameters:
message (str) – Message to store.
-
storage:
List
[str
]#