diff --git a/app/MindWork AI Studio/Provider/AlibabaCloud/ProviderAlibabaCloud.cs b/app/MindWork AI Studio/Provider/AlibabaCloud/ProviderAlibabaCloud.cs
index dfd807df..fb38cc4f 100644
--- a/app/MindWork AI Studio/Provider/AlibabaCloud/ProviderAlibabaCloud.cs
+++ b/app/MindWork AI Studio/Provider/AlibabaCloud/ProviderAlibabaCloud.cs
@@ -139,7 +139,78 @@ public sealed class ProviderAlibabaCloud(ILogger logger) : BaseProvider("https:/
return this.LoadModels(["text-embedding-"], token, apiKeyProvisional).ContinueWith(t => t.Result.Concat(additionalModels).OrderBy(x => x.Id).AsEnumerable(), token);
}
+
+ ///
+ public override IReadOnlyCollection GetModelCapabilities(Model model)
+ {
+ var modelName = model.Id.ToLowerInvariant().AsSpan();
+
+ // Qwen models:
+ if (modelName.StartsWith("qwen"))
+ {
+ // Check for omni models:
+ if (modelName.IndexOf("omni") is not -1)
+ return
+ [
+ Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT,
+ Capability.AUDIO_INPUT, Capability.SPEECH_INPUT,
+ Capability.VIDEO_INPUT,
+ Capability.TEXT_OUTPUT, Capability.SPEECH_OUTPUT
+ ];
+
+ // Check for Qwen 3:
+ if(modelName.StartsWith("qwen3"))
+ return
+ [
+ Capability.TEXT_INPUT,
+ Capability.TEXT_OUTPUT,
+
+ Capability.OPTIONAL_REASONING, Capability.FUNCTION_CALLING
+ ];
+
+ if(modelName.IndexOf("-vl-") is not -1)
+ return
+ [
+ Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT,
+ Capability.TEXT_OUTPUT,
+ ];
+ }
+
+ // QwQ models:
+ if (modelName.StartsWith("qwq"))
+ {
+ return
+ [
+ Capability.TEXT_INPUT,
+ Capability.TEXT_OUTPUT,
+
+ Capability.ALWAYS_REASONING, Capability.FUNCTION_CALLING
+ ];
+ }
+
+ // QVQ models:
+ if (modelName.StartsWith("qvq"))
+ {
+ return
+ [
+ Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT,
+ Capability.TEXT_OUTPUT,
+
+ Capability.ALWAYS_REASONING
+ ];
+ }
+
+ // Default to text input and output:
+ return
+ [
+ Capability.TEXT_INPUT,
+ Capability.TEXT_OUTPUT,
+
+ Capability.FUNCTION_CALLING
+ ];
+ }
+
#endregion
private async Task> LoadModels(string[] prefixes, CancellationToken token, string? apiKeyProvisional = null)