Skip to content

Message

Message

Bases: Sample

Single completion sample space.

Message can be text, image, list of text/images, Sample, or other modality.

Attributes:

Name Type Description
role Role

The role of the message sender (user, assistant, or system).

content Any | None

The content of the message, which can be of various types.

Source code in mbodied/types/message.py
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
class Message(Sample):
    """Single completion sample space.

    Message can be text, image, list of text/images, Sample, or other modality.

    Attributes:
        role: The role of the message sender (user, assistant, or system).
        content: The content of the message, which can be of various types.
    """

    role: Role = "user"
    content: Any | None = Field(default_factory=list)

    @classmethod
    def supports(cls, arg: Any) -> bool:
        """Checks if the argument type is supported by the Message class.

        Args:
            arg: The argument to be checked.

        Returns:
            True if the argument type is supported, False otherwise.
        """
        return Image.supports(arg) or isinstance(arg, str | list | Sample | tuple | dict)

    def __init__(
        self,
        content: Any | None = None,
        role: Role = "user",
    ):
        """Initializes a Message instance.

        Args:
            content: The content of the message, which can be of various types.
            role: The role of the message sender (default is "user").
        """
        data = {"role": role}
        if content is not None and not isinstance(content, list):
            content = [content]
        data["content"] = content
        super().__init__(**data)

__init__(content=None, role='user')

Initializes a Message instance.

Parameters:

Name Type Description Default
content Any | None

The content of the message, which can be of various types.

None
role Role

The role of the message sender (default is "user").

'user'
Source code in mbodied/types/message.py
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
def __init__(
    self,
    content: Any | None = None,
    role: Role = "user",
):
    """Initializes a Message instance.

    Args:
        content: The content of the message, which can be of various types.
        role: The role of the message sender (default is "user").
    """
    data = {"role": role}
    if content is not None and not isinstance(content, list):
        content = [content]
    data["content"] = content
    super().__init__(**data)

supports(arg) classmethod

Checks if the argument type is supported by the Message class.

Parameters:

Name Type Description Default
arg Any

The argument to be checked.

required

Returns:

Type Description
bool

True if the argument type is supported, False otherwise.

Source code in mbodied/types/message.py
38
39
40
41
42
43
44
45
46
47
48
@classmethod
def supports(cls, arg: Any) -> bool:
    """Checks if the argument type is supported by the Message class.

    Args:
        arg: The argument to be checked.

    Returns:
        True if the argument type is supported, False otherwise.
    """
    return Image.supports(arg) or isinstance(arg, str | list | Sample | tuple | dict)