namespace AIStudio.Chat; /// <summary> /// Possible roles in the chat. /// </summary> public enum ChatRole { NONE, UNKNOWN, SYSTEM, USER, AI, AGENT, } /// <summary> /// Extensions for the ChatRole enum. /// </summary> public static class ExtensionsChatRole { /// <summary> /// Returns the name of the role. /// </summary> /// <param name="role">The role.</param> /// <returns>The name of the role.</returns> public static string ToName(this ChatRole role) => role switch { ChatRole.SYSTEM => "System", ChatRole.USER => "You", ChatRole.AI => "AI", _ => "Unknown", }; /// <summary> /// Returns the color of the role. /// </summary> /// <param name="role">The role.</param> /// <returns>The color of the role.</returns> public static Color ToColor(this ChatRole role) => role switch { ChatRole.SYSTEM => Color.Info, ChatRole.USER => Color.Primary, ChatRole.AI => Color.Tertiary, _ => Color.Error, }; /// <summary> /// Returns the icon of the role. /// </summary> /// <param name="role">The role.</param> /// <returns>The icon of the role.</returns> public static string ToIcon(this ChatRole role) => role switch { ChatRole.SYSTEM => Icons.Material.Filled.Settings, ChatRole.USER => Icons.Material.Filled.Person, ChatRole.AI => Icons.Material.Filled.AutoAwesome, _ => Icons.Material.Filled.Help, }; }