Skip to content

Message Types

Standardized message objects used to maintain conversation state across different LLM providers and graph nodes.

maticlib.messages.message.BaseMessage

BaseMessage(content, message_type)

Base class for all message types in the library.

Acts as a container for message content and metadata about the message role.

Attributes:

Name Type Description
content str

The text content of the message.

message_type MessageType

The enum type of the message (System, Human, AI).

Initializes a new message.

Parameters:

Name Type Description Default
content str | None

The string content of the message.

required
message_type str | int | MessageType

The role/type of the message.

required

Raises:

Type Description
TypeError

If content is not a string or if message_type handling fails.

Source code in maticlib/messages/message.py
def __init__(self, content: str | None, message_type: str | int | MessageType):
    """
    Initializes a new message.

    Args:
        content (str | None): The string content of the message.
        message_type (str | int | MessageType): The role/type of the message.

    Raises:
        TypeError: If content is not a string or if message_type handling fails.
    """
    if not isinstance(content, str):
        raise TypeError(f"Content is {type(content)}. It should be string.")

    self.content = content

    if isinstance(message_type, str):
        if message_type == MessageType.SystemMessage.name:
            self.message_type = MessageType.SystemMessage
        elif message_type == MessageType.HumanMessage.name:
            self.message_type = MessageType.HumanMessage
        elif message_type == MessageType.AIMessage.name:
            self.message_type = MessageType.AIMessage
        raise TypeError(content="")
    elif isinstance(message_type, int):
        if message_type == MessageType.SystemMessage.value:
            self.message_type = MessageType.SystemMessage
        elif message_type == MessageType.HumanMessage.value:
            self.message_type = MessageType.HumanMessage
        elif message_type == MessageType.AIMessage.value:
            self.message_type = MessageType.AIMessage
    elif isinstance(message_type, MessageType):
        self.message_type = message_type

maticlib.messages.system_message.SystemMessage

SystemMessage(content)

Bases: BaseMessage

Source code in maticlib/messages/system_message.py
def __init__(self, content):
    if isinstance(content, str):
        super().__init__(content=content, message_type=MessageType.SystemMessage)
    else:
        raise TypeError(f"Content is {type(content)}. It should be string")

maticlib.messages.human_message.HumanMessage

HumanMessage(content)

Bases: BaseMessage

Source code in maticlib/messages/human_message.py
def __init__(self, content: str):
    if isinstance(content, str):
        super().__init__(content=content, message_type=MessageType.HumanMessage)
    else:
        raise TypeError(f"Content is {type(content)}. It should be string")

maticlib.messages.ai_message.AIMessage

AIMessage(content)

Bases: BaseMessage

Source code in maticlib/messages/ai_message.py
def __init__(self, content: str):
    if isinstance(content, str):
        super().__init__(content=content, message_type=MessageType.AIMessage)
    else:
        raise TypeError(f"Content is {type(content)}. It should be string")