ChatMessage.withRole constructor

ChatMessage.withRole({
  1. required String role,
  2. required String content,
})

Factory constructor to create a ChatMessage instance based on the provided role.

The role parameter determines the type of ChatMessage to create:

  • 'user': Creates a UserChatMessage.
  • 'assistant': Creates an AssistantChatMessage.
  • 'system': Creates a SystemChatMessage.

Throws an ArgumentError if the provided role is not one of the expected values.

Parameters:

  • role: The role of the chat message (e.g., 'user', 'assistant', 'system').
  • content: The content of the chat message.

Implementation

factory ChatMessage.withRole({
  required String role,
  required String content,
}) {
  switch (role) {
    case 'user':
      return UserChatMessage(content);
    case 'assistant':
      return AssistantChatMessage(content);
    case 'system':
      return SystemChatMessage(content);
    default:
      throw ArgumentError('Invalid role: $role');
  }
}