diff --git a/app/MindWork AI Studio/Dialogs/ProviderDialog.razor.cs b/app/MindWork AI Studio/Dialogs/ProviderDialog.razor.cs
index e1a7bbc0..62008d86 100644
--- a/app/MindWork AI Studio/Dialogs/ProviderDialog.razor.cs
+++ b/app/MindWork AI Studio/Dialogs/ProviderDialog.razor.cs
@@ -126,13 +126,13 @@ public partial class ProviderDialog : MSGComponentBase, ISecretId
Id = this.DataId,
InstanceName = this.DataInstanceName,
UsedLLMProvider = this.DataLLMProvider,
+
Model = this.DataLLMProvider switch
{
- LLMProviders.FIREWORKS => new Model(this.dataManuallyModel, null),
- LLMProviders.HUGGINGFACE => new Model(this.dataManuallyModel, null),
- LLMProviders.PERPLEXITY => new Model(this.dataManuallyModel, null),
+ LLMProviders.FIREWORKS or LLMProviders.HUGGINGFACE => new Model(this.dataManuallyModel, null),
_ => this.DataModel
},
+
IsSelfHosted = this.DataLLMProvider is LLMProviders.SELF_HOSTED,
IsEnterpriseConfiguration = false,
Hostname = cleanedHostname.EndsWith('/') ? cleanedHostname[..^1] : cleanedHostname,
diff --git a/app/MindWork AI Studio/Provider/LLMProvidersExtensions.cs b/app/MindWork AI Studio/Provider/LLMProvidersExtensions.cs
index e0932aa9..ad9a8f2f 100644
--- a/app/MindWork AI Studio/Provider/LLMProvidersExtensions.cs
+++ b/app/MindWork AI Studio/Provider/LLMProvidersExtensions.cs
@@ -250,7 +250,6 @@ public static class LLMProvidersExtensions
{
LLMProviders.FIREWORKS => "https://fireworks.ai/models?show=Serverless",
LLMProviders.HUGGINGFACE => $"https://huggingface.co/models?inference_provider={inferenceProvider.EndpointsId()}",
- LLMProviders.PERPLEXITY => "https://docs.perplexity.ai/api-reference/chat-completions-post#body-model",
_ => string.Empty,
};
@@ -258,7 +257,6 @@ public static class LLMProvidersExtensions
{
LLMProviders.FIREWORKS => true,
LLMProviders.HUGGINGFACE => true,
- LLMProviders.PERPLEXITY => true,
_ => false,
};
diff --git a/app/MindWork AI Studio/Provider/Perplexity/ProviderPerplexity.cs b/app/MindWork AI Studio/Provider/Perplexity/ProviderPerplexity.cs
index abda0aa1..e578b7f0 100644
--- a/app/MindWork AI Studio/Provider/Perplexity/ProviderPerplexity.cs
+++ b/app/MindWork AI Studio/Provider/Perplexity/ProviderPerplexity.cs
@@ -11,6 +11,15 @@ namespace AIStudio.Provider.Perplexity;
public sealed class ProviderPerplexity(ILogger logger) : BaseProvider("https://api.perplexity.ai/", logger)
{
+ private static readonly Model[] KNOWN_MODELS =
+ [
+ new("sonar", "Sonar"),
+ new("sonar-pro", "Sonar Pro"),
+ new("sonar-reasoning", "Sonar Reasoning"),
+ new("sonar-reasoning-pro", "Sonar Reasoning Pro"),
+ new("sonar-deep-research", "Sonar Deep Research"),
+ ];
+
#region Implementation of IProvider
///
@@ -91,7 +100,7 @@ public sealed class ProviderPerplexity(ILogger logger) : BaseProvider("https://a
///
public override Task> GetTextModels(string? apiKeyProvisional = null, CancellationToken token = default)
{
- return this.LoadModels(token, apiKeyProvisional);
+ return this.LoadModels();
}
///
@@ -132,33 +141,8 @@ public sealed class ProviderPerplexity(ILogger logger) : BaseProvider("https://a
Capability.IMAGE_OUTPUT,
];
}
-
-
+
#endregion
- private async Task> LoadModels(CancellationToken token, string? apiKeyProvisional = null)
- {
- var secretKey = apiKeyProvisional switch
- {
- not null => apiKeyProvisional,
- _ => await RUST_SERVICE.GetAPIKey(this) switch
- {
- { Success: true } result => await result.Secret.Decrypt(ENCRYPTION),
- _ => null,
- }
- };
-
- if (secretKey is null)
- return [];
-
- using var request = new HttpRequestMessage(HttpMethod.Get, "models");
- request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", secretKey);
-
- using var response = await this.httpClient.SendAsync(request, token);
- if(!response.IsSuccessStatusCode)
- return [];
-
- var modelResponse = await response.Content.ReadFromJsonAsync(token);
- return modelResponse.Data;
- }
+ private Task> LoadModels() => Task.FromResult>(KNOWN_MODELS);
}
\ No newline at end of file