using AIStudio.Provider.Anthropic; using AIStudio.Provider.OpenAI; namespace AIStudio.Provider; /// /// Enum for all available providers. /// public enum Providers { NONE, OPEN_AI, ANTHROPIC, } /// /// Extension methods for the provider enum. /// public static class ExtensionsProvider { /// /// Returns the human-readable name of the provider. /// /// The provider. /// The human-readable name of the provider. public static string ToName(this Providers provider) => provider switch { Providers.OPEN_AI => "OpenAI", Providers.ANTHROPIC => "Anthropic", Providers.NONE => "No provider selected", _ => "Unknown", }; /// /// Creates a new provider instance based on the provider value. /// /// The provider value. /// The used instance name. /// The provider instance. public static IProvider CreateProvider(this Providers provider, string instanceName) => provider switch { Providers.OPEN_AI => new ProviderOpenAI { InstanceName = instanceName }, Providers.ANTHROPIC => new ProviderAnthropic { InstanceName = instanceName }, _ => new NoProvider(), }; }