From 12bb0a64ef65bc372c14cb6e55afb387f9709695 Mon Sep 17 00:00:00 2001 From: Thorsten Sommer Date: Tue, 6 May 2025 08:28:39 +0200 Subject: [PATCH] Add Anthropic model capabilities --- .../Provider/Anthropic/ProviderAnthropic.cs | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/app/MindWork AI Studio/Provider/Anthropic/ProviderAnthropic.cs b/app/MindWork AI Studio/Provider/Anthropic/ProviderAnthropic.cs index 7693d21f..7f7d2f7b 100644 --- a/app/MindWork AI Studio/Provider/Anthropic/ProviderAnthropic.cs +++ b/app/MindWork AI Studio/Provider/Anthropic/ProviderAnthropic.cs @@ -110,6 +110,26 @@ public sealed class ProviderAnthropic(ILogger logger) : BaseProvider("https://ap return Task.FromResult(Enumerable.Empty()); } + #region Overrides of BaseProvider + + public override IReadOnlyCollection GetModelCapabilities(Model model) + { + var modelName = model.Id.ToLowerInvariant().AsSpan(); + + // Claude 3.7 is able to do reasoning: + if(modelName.StartsWith("claude-3-7")) + return [Capability.TEXT_INPUT, Capability.IMAGE_INPUT, Capability.TEXT_OUTPUT, Capability.REASONING, Capability.FUNCTION_CALLING]; + + // All other 3.x models are able to process text and images as input: + if(modelName.StartsWith("claude-3-")) + return [Capability.TEXT_INPUT, Capability.IMAGE_INPUT, Capability.TEXT_OUTPUT, Capability.FUNCTION_CALLING]; + + // Any other model is able to process text only: + return [Capability.TEXT_INPUT, Capability.TEXT_OUTPUT, Capability.FUNCTION_CALLING]; + } + + #endregion + #endregion private async Task> LoadModels(CancellationToken token, string? apiKeyProvisional = null)