diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelProviders.razor.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelProviders.razor.cs index 5a71925b..ce03a430 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelProviders.razor.cs +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelProviders.razor.cs @@ -65,7 +65,7 @@ public partial class SettingsPanelProviders : SettingsPanelBase { x => x.IsSelfHosted, provider.IsSelfHosted }, { x => x.IsEditing, true }, { x => x.DataHost, provider.Host }, - { x => x.HfInstanceProviderId, provider.HFInstanceProvider }, + { x => x.HFInferenceProviderId, provider.HFInferenceProvider }, }; var dialogReference = await this.DialogService.ShowAsync("Edit LLM Provider", dialogParameters, DialogOptions.FULLSCREEN); diff --git a/app/MindWork AI Studio/Dialogs/ProviderDialog.razor b/app/MindWork AI Studio/Dialogs/ProviderDialog.razor index 1a01faba..3664062a 100644 --- a/app/MindWork AI Studio/Dialogs/ProviderDialog.razor +++ b/app/MindWork AI Studio/Dialogs/ProviderDialog.razor @@ -61,20 +61,22 @@ @if (this.DataLLMProvider.IsHFInstanceProviderNeeded()) { - - @foreach (HFInstanceProvider instanceProvider in Enum.GetValues(typeof(HFInstanceProvider))) + + @foreach (HFInferenceProvider inferenceProvider in Enum.GetValues(typeof(HFInferenceProvider))) { - @instanceProvider.ToName() + + @inferenceProvider.ToName() + } - Please double-check if your model name matches the curl specifications provided by the instance provider. If it doesn't, you might get a Not Found error when trying to use the model. Here's a curl example. + Please double-check if your model name matches the curl specifications provided by the inference provider. If it doesn't, you might get a Not Found error when trying to use the model. Here's a curl example. } @if (this.DataLLMProvider.IsLLMModelProvidedManually()) { - Show available models + Show available models [Parameter] - public HFInstanceProvider HfInstanceProviderId { get; set; } = HFInstanceProvider.NONE; + public HFInferenceProvider HFInferenceProviderId { get; set; } = HFInferenceProvider.NONE; /// /// Is this provider self-hosted? @@ -138,7 +138,7 @@ public partial class ProviderDialog : ComponentBase, ISecretId IsSelfHosted = this.DataLLMProvider is LLMProviders.SELF_HOSTED, Hostname = cleanedHostname.EndsWith('/') ? cleanedHostname[..^1] : cleanedHostname, Host = this.DataHost, - HFInstanceProvider = this.HfInstanceProviderId, + HFInferenceProvider = this.HFInferenceProviderId, }; } diff --git a/app/MindWork AI Studio/Provider/HuggingFace/HFInstanceProvider.cs b/app/MindWork AI Studio/Provider/HuggingFace/HFInferenceProvider.cs similarity index 70% rename from app/MindWork AI Studio/Provider/HuggingFace/HFInstanceProvider.cs rename to app/MindWork AI Studio/Provider/HuggingFace/HFInferenceProvider.cs index 63221290..01b722eb 100644 --- a/app/MindWork AI Studio/Provider/HuggingFace/HFInstanceProvider.cs +++ b/app/MindWork AI Studio/Provider/HuggingFace/HFInferenceProvider.cs @@ -1,9 +1,9 @@ namespace AIStudio.Provider.HuggingFace; /// -/// Enum for instance providers that Hugging Face supports. +/// Enum for inference providers that Hugging Face supports. /// -public enum HFInstanceProvider +public enum HFInferenceProvider { NONE, diff --git a/app/MindWork AI Studio/Provider/HuggingFace/HFInferenceProviderExtensions.cs b/app/MindWork AI Studio/Provider/HuggingFace/HFInferenceProviderExtensions.cs new file mode 100644 index 00000000..0e103938 --- /dev/null +++ b/app/MindWork AI Studio/Provider/HuggingFace/HFInferenceProviderExtensions.cs @@ -0,0 +1,43 @@ +namespace AIStudio.Provider.HuggingFace; + +public static class HFInferenceProviderExtensions +{ + public static string Endpoints(this HFInferenceProvider provider, Model model) => provider switch + { + HFInferenceProvider.CEREBRAS => "cerebras/v1/", + HFInferenceProvider.NEBIUS_AI_STUDIO => "nebius/v1/", + HFInferenceProvider.SAMBANOVA => "sambanova/v1/", + HFInferenceProvider.NOVITA => "novita/v3/openai/", + HFInferenceProvider.HYPERBOLIC => "hyperbolic/v1/", + HFInferenceProvider.TOGETHER_AI => "together/v1/", + HFInferenceProvider.FIREWORKS => "fireworks-ai/inference/v1/", + HFInferenceProvider.HF_INFERENCE_API => $"hf-inference/models/{model.ToString()}/v1/", + _ => string.Empty, + }; + + public static string EndpointsId(this HFInferenceProvider provider) => provider switch + { + HFInferenceProvider.CEREBRAS => "cerebras", + HFInferenceProvider.NEBIUS_AI_STUDIO => "nebius", + HFInferenceProvider.SAMBANOVA => "sambanova", + HFInferenceProvider.NOVITA => "novita", + HFInferenceProvider.HYPERBOLIC => "hyperbolic", + HFInferenceProvider.TOGETHER_AI => "together", + HFInferenceProvider.FIREWORKS => "fireworks", + HFInferenceProvider.HF_INFERENCE_API => "hf-inference", + _ => string.Empty, + }; + + public static string ToName(this HFInferenceProvider provider) => provider switch + { + HFInferenceProvider.CEREBRAS => "Cerebras", + HFInferenceProvider.NEBIUS_AI_STUDIO => "Nebius AI Studio", + HFInferenceProvider.SAMBANOVA => "Sambanova", + HFInferenceProvider.NOVITA => "Novita", + HFInferenceProvider.HYPERBOLIC => "Hyperbolic", + HFInferenceProvider.TOGETHER_AI => "Together AI", + HFInferenceProvider.FIREWORKS => "Fireworks AI", + HFInferenceProvider.HF_INFERENCE_API => "Hugging Face Inference API", + _ => string.Empty, + }; +} \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/HuggingFace/HFInstanceProviderExtensions.cs b/app/MindWork AI Studio/Provider/HuggingFace/HFInstanceProviderExtensions.cs deleted file mode 100644 index b0d81fba..00000000 --- a/app/MindWork AI Studio/Provider/HuggingFace/HFInstanceProviderExtensions.cs +++ /dev/null @@ -1,43 +0,0 @@ -namespace AIStudio.Provider.HuggingFace; - -public static class HFInstanceProviderExtensions -{ - public static string Endpoints(this HFInstanceProvider provider, Model model) => provider switch - { - HFInstanceProvider.CEREBRAS => "cerebras/v1/", - HFInstanceProvider.NEBIUS_AI_STUDIO => "nebius/v1/", - HFInstanceProvider.SAMBANOVA => "sambanova/v1/", - HFInstanceProvider.NOVITA => "novita/v3/openai/", - HFInstanceProvider.HYPERBOLIC => "hyperbolic/v1/", - HFInstanceProvider.TOGETHER_AI => "together/v1/", - HFInstanceProvider.FIREWORKS => "fireworks-ai/inference/v1/", - HFInstanceProvider.HF_INFERENCE_API => $"hf-inference/models/{model.ToString()}/v1/", - _ => string.Empty, - }; - - public static string EndpointsId(this HFInstanceProvider provider) => provider switch - { - HFInstanceProvider.CEREBRAS => "cerebras", - HFInstanceProvider.NEBIUS_AI_STUDIO => "nebius", - HFInstanceProvider.SAMBANOVA => "sambanova", - HFInstanceProvider.NOVITA => "novita", - HFInstanceProvider.HYPERBOLIC => "hyperbolic", - HFInstanceProvider.TOGETHER_AI => "together", - HFInstanceProvider.FIREWORKS => "fireworks", - HFInstanceProvider.HF_INFERENCE_API => "hf-inference", - _ => string.Empty, - }; - - public static string ToName(this HFInstanceProvider provider) => provider switch - { - HFInstanceProvider.CEREBRAS => "Cerebras", - HFInstanceProvider.NEBIUS_AI_STUDIO => "Nebius AI Studio", - HFInstanceProvider.SAMBANOVA => "Sambanova", - HFInstanceProvider.NOVITA => "Novita", - HFInstanceProvider.HYPERBOLIC => "Hyperbolic", - HFInstanceProvider.TOGETHER_AI => "Together AI", - HFInstanceProvider.FIREWORKS => "Fireworks AI", - HFInstanceProvider.HF_INFERENCE_API => "Hugging Face Inference API", - _ => string.Empty, - }; -} \ No newline at end of file diff --git a/app/MindWork AI Studio/Provider/HuggingFace/ProviderHuggingFace.cs b/app/MindWork AI Studio/Provider/HuggingFace/ProviderHuggingFace.cs index 25f2baae..e98de1f9 100644 --- a/app/MindWork AI Studio/Provider/HuggingFace/ProviderHuggingFace.cs +++ b/app/MindWork AI Studio/Provider/HuggingFace/ProviderHuggingFace.cs @@ -11,9 +11,9 @@ namespace AIStudio.Provider.HuggingFace; public sealed class ProviderHuggingFace : BaseProvider { - public ProviderHuggingFace(ILogger logger, HFInstanceProvider hfProvider, Model model) : base($"https://router.huggingface.co/{hfProvider.Endpoints(model)}", logger) + public ProviderHuggingFace(ILogger logger, HFInferenceProvider hfProvider, Model model) : base($"https://router.huggingface.co/{hfProvider.Endpoints(model)}", logger) { - logger.LogInformation($"We use the instance provider '{hfProvider}'. Thus we use the base URL 'https://router.huggingface.co/{hfProvider.Endpoints(model)}'."); + logger.LogInformation($"We use the inferende provider '{hfProvider}'. Thus we use the base URL 'https://router.huggingface.co/{hfProvider.Endpoints(model)}'."); } #region Implementation of IProvider diff --git a/app/MindWork AI Studio/Provider/LLMProvidersExtensions.cs b/app/MindWork AI Studio/Provider/LLMProvidersExtensions.cs index 8abb0bd4..68a62297 100644 --- a/app/MindWork AI Studio/Provider/LLMProvidersExtensions.cs +++ b/app/MindWork AI Studio/Provider/LLMProvidersExtensions.cs @@ -135,7 +135,7 @@ public static class LLMProvidersExtensions /// The provider instance. public static IProvider CreateProvider(this AIStudio.Settings.Provider providerSettings, ILogger logger) { - return providerSettings.UsedLLMProvider.CreateProvider(providerSettings.InstanceName, providerSettings.Host, providerSettings.Hostname, providerSettings.Model, providerSettings.HFInstanceProvider ,logger); + return providerSettings.UsedLLMProvider.CreateProvider(providerSettings.InstanceName, providerSettings.Host, providerSettings.Hostname, providerSettings.Model, providerSettings.HFInferenceProvider ,logger); } /// @@ -146,10 +146,10 @@ public static class LLMProvidersExtensions /// The provider instance. public static IProvider CreateProvider(this EmbeddingProvider embeddingProviderSettings, ILogger logger) { - return embeddingProviderSettings.UsedLLMProvider.CreateProvider(embeddingProviderSettings.Name, embeddingProviderSettings.Host, embeddingProviderSettings.Hostname, embeddingProviderSettings.Model, HFInstanceProvider.NONE,logger); + return embeddingProviderSettings.UsedLLMProvider.CreateProvider(embeddingProviderSettings.Name, embeddingProviderSettings.Host, embeddingProviderSettings.Hostname, embeddingProviderSettings.Model, HFInferenceProvider.NONE,logger); } - private static IProvider CreateProvider(this LLMProviders provider, string instanceName, Host host, string hostname, Model model, HFInstanceProvider instanceProvider , ILogger logger) + private static IProvider CreateProvider(this LLMProviders provider, string instanceName, Host host, string hostname, Model model, HFInferenceProvider inferenceProvider , ILogger logger) { try { @@ -165,7 +165,7 @@ public static class LLMProvidersExtensions LLMProviders.GROQ => new ProviderGroq(logger) { InstanceName = instanceName }, LLMProviders.FIREWORKS => new ProviderFireworks(logger) { InstanceName = instanceName }, - LLMProviders.HUGGINGFACE => new ProviderHuggingFace(logger, instanceProvider, model) { InstanceName = instanceName }, + LLMProviders.HUGGINGFACE => new ProviderHuggingFace(logger, inferenceProvider, model) { InstanceName = instanceName }, LLMProviders.SELF_HOSTED => new ProviderSelfHosted(logger, host, hostname) { InstanceName = instanceName }, @@ -234,10 +234,10 @@ public static class LLMProvidersExtensions _ => false, }; - public static string GetModelsOverviewURL(this LLMProviders provider, HFInstanceProvider instanceProvider) => provider switch + public static string GetModelsOverviewURL(this LLMProviders provider, HFInferenceProvider inferenceProvider) => provider switch { LLMProviders.FIREWORKS => "https://fireworks.ai/models?show=Serverless", - LLMProviders.HUGGINGFACE => $"https://huggingface.co/models?inference_provider={instanceProvider.EndpointsId()}", + LLMProviders.HUGGINGFACE => $"https://huggingface.co/models?inference_provider={inferenceProvider.EndpointsId()}", _ => string.Empty, }; diff --git a/app/MindWork AI Studio/Settings/Provider.cs b/app/MindWork AI Studio/Settings/Provider.cs index 6aefc5b5..33d39d3d 100644 --- a/app/MindWork AI Studio/Settings/Provider.cs +++ b/app/MindWork AI Studio/Settings/Provider.cs @@ -25,7 +25,7 @@ public readonly record struct Provider( bool IsSelfHosted = false, string Hostname = "http://localhost:1234", Host Host = Host.NONE, - HFInstanceProvider HFInstanceProvider = HFInstanceProvider.NONE) : ISecretId + HFInferenceProvider HFInferenceProvider = HFInferenceProvider.NONE) : ISecretId { #region Overrides of ValueType diff --git a/app/MindWork AI Studio/Tools/Validation/ProviderValidation.cs b/app/MindWork AI Studio/Tools/Validation/ProviderValidation.cs index 12d27b43..9205b1ef 100644 --- a/app/MindWork AI Studio/Tools/Validation/ProviderValidation.cs +++ b/app/MindWork AI Studio/Tools/Validation/ProviderValidation.cs @@ -94,13 +94,13 @@ public sealed class ProviderValidation return null; } - public string? ValidatingHFInstanceProvider(HFInstanceProvider instanceProvider) + public string? ValidatingHFInstanceProvider(HFInferenceProvider inferenceProvider) { if(this.GetProvider() is not LLMProviders.HUGGINGFACE) return null; - if (instanceProvider is HFInstanceProvider.NONE) - return "Please select an Hugging Face instance provider."; + if (inferenceProvider is HFInferenceProvider.NONE) + return "Please select an Hugging Face inference provider."; return null; }