Source code for mllm_shap.connectors.enums

"""Configuration for possible roles and modalities."""

from enum import Enum


[docs] class ModalityFlag(int, Enum): """Defines supported input/output modalities.""" IGNORE = -1 """ Ignore this token for modality-specific operations. For internal calculations references. """ TEXT = 0 """Represents text inputs or outputs.""" AUDIO = 1 """Represents audio inputs or outputs."""
[docs] class Role(int, Enum): """Defines roles for participants in a conversation.""" USER = 0 """Represents user-provided inputs.""" ASSISTANT = 1 """Represents outputs generated by the assistant.""" SYSTEM = 2 """Represents system-level inputs or outputs."""
[docs] @classmethod def from_ordinal(cls, ordinal: int) -> "Role": """Creates a Role enum member from its ordinal value. Args: ordinal: The integer ordinal value of the role. Returns: The corresponding Role enum member. Raises: ValueError: If the ordinal does not correspond to any Role. """ for role in cls: if role.value == ordinal: return role raise ValueError(f"No Role found for ordinal {ordinal}.")
def __str__(self) -> str: """Returns the role name as a string.""" return self.name
[docs] class SystemRolesSetup(int, Enum): """Specifies how system roles affect explainability.""" NONE = 0 """No system role; all tokens are considered for explainability.""" SYSTEM = 1 """ System role is active; explainability for system tokens is disabled. Includes steering tokens depending on connector implementation. """ SYSTEM_ASSISTANT = 2 """System-assistant role is active; explainability for assistant tokens is disabled."""
[docs] class ModelHistoryTrackingMode(int, Enum): """Controls which model outputs are tracked in history.""" TEXT = 0 """Track only text outputs.""" AUDIO = 1 """Track only audio outputs.""" TEXT_AUDIO = 2 """Track both text and audio outputs."""