Skip to main content

MessageRole

Enum for chat message roles in LLM conversations.

Overview

MessageRole is a str enum that defines the four possible sender roles for a PromptMessage. Because it extends str, enum members compare equal to their string values.
from adaline_api.models.message_role import MessageRole

Values

ValueEnum MemberDescription
"system"MessageRole.SYSTEMSystem instructions that guide the model’s behavior and set context.
"user"MessageRole.USERUser-provided messages and input.
"assistant"MessageRole.ASSISTANTAI assistant responses, including tool-call requests.
"tool"MessageRole.TOOLTool/function execution results returned to the model.

Examples

Basic Usage

from adaline_api.models.message_role import MessageRole

role = MessageRole.SYSTEM       # 'system'
role = MessageRole.USER         # 'user'
role = MessageRole.ASSISTANT    # 'assistant'
role = MessageRole.TOOL         # 'tool'

# String comparison works because MessageRole extends str
assert MessageRole.USER == "user"
assert MessageRole.SYSTEM == "system"

With PromptMessage

from adaline_api.models.message_role import MessageRole
from adaline_api.models.prompt_message import PromptMessage
from adaline_api.models.message_content import MessageContent
from adaline_api.models.text_content import TextContent

system_msg = PromptMessage(
    role=MessageRole.SYSTEM,
    content=[MessageContent(actual_instance=TextContent(
        modality="text",
        value="You are a helpful assistant."
    ))]
)

user_msg = PromptMessage(
    role=MessageRole.USER,
    content=[MessageContent(actual_instance=TextContent(
        modality="text",
        value="Hello!"
    ))]
)

Filtering Messages by Role

from adaline_api.models.message_role import MessageRole
from adaline_api.models.prompt_message import PromptMessage

def filter_by_role(
    messages: list[PromptMessage], role: MessageRole
) -> list[PromptMessage]:
    return [m for m in messages if m.role == role]

deployment = await adaline.get_latest_deployment(
    prompt_id="prompt_abc123",
    deployment_environment_id="environment_abc123"
)

messages = deployment.prompt.messages
system_messages = filter_by_role(messages, MessageRole.SYSTEM)
user_messages = filter_by_role(messages, MessageRole.USER)

Iterating Over All Roles

from adaline_api.models.message_role import MessageRole

for role in MessageRole:
    print(role.name, role.value)
# SYSTEM system
# USER user
# ASSISTANT assistant
# TOOL tool

Serialization

from adaline_api.models.message_role import MessageRole

role = MessageRole.USER
j = role.value              # 'user'
restored = MessageRole(j)   # MessageRole.USER

# From JSON string
restored = MessageRole.from_json('"user"')