diff --git a/app/MindWork AI Studio/Settings/ProviderExtensions.Alibaba.cs b/app/MindWork AI Studio/Settings/ProviderExtensions.Alibaba.cs index 2a38c9fb..0b2ce380 100644 --- a/app/MindWork AI Studio/Settings/ProviderExtensions.Alibaba.cs +++ b/app/MindWork AI Studio/Settings/ProviderExtensions.Alibaba.cs @@ -35,17 +35,19 @@ private static List GetModelCapabilitiesAlibaba(Model model) Capability.CHAT_COMPLETION_API, ]; - // Check for Qwen 3: - if(modelName.StartsWith("qwen3")) + // Check for Qwen 3.6 plus: + if(modelName.StartsWith("qwen3.6-plus")) return [ - Capability.TEXT_INPUT, + Capability.TEXT_INPUT, Capability.VIDEO_INPUT, + Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, - Capability.OPTIONAL_REASONING, Capability.FUNCTION_CALLING, + Capability.ALWAYS_REASONING, Capability.FUNCTION_CALLING, Capability.CHAT_COMPLETION_API, ]; + // Check for the 3.0 VL models: if(modelName.IndexOf("-vl-") is not -1) return [ @@ -54,6 +56,17 @@ private static List GetModelCapabilitiesAlibaba(Model model) Capability.CHAT_COMPLETION_API, ]; + + // Check for Qwen 3: + if(modelName.StartsWith("qwen3")) + return + [ + Capability.TEXT_INPUT, + Capability.TEXT_OUTPUT, + + Capability.OPTIONAL_REASONING, Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, + ]; } // QwQ models: diff --git a/app/MindWork AI Studio/Settings/ProviderExtensions.Mistral.cs b/app/MindWork AI Studio/Settings/ProviderExtensions.Mistral.cs index 3d0150c9..931e67bb 100644 --- a/app/MindWork AI Studio/Settings/ProviderExtensions.Mistral.cs +++ b/app/MindWork AI Studio/Settings/ProviderExtensions.Mistral.cs @@ -19,13 +19,41 @@ private static List GetModelCapabilitiesMistral(Model model) Capability.CHAT_COMPLETION_API, ]; + // Mistral large latest: + if (modelName.IndexOf("mistral-large-latest") is not -1) + return + [ + Capability.TEXT_INPUT, + Capability.MULTIPLE_IMAGE_INPUT, + Capability.TEXT_OUTPUT, + + Capability.OPTIONAL_REASONING, + + Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, + ]; + // Mistral large: if (modelName.IndexOf("mistral-large-") is not -1) return [ - Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT, + Capability.TEXT_INPUT, + Capability.TEXT_OUTPUT, + + Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, + ]; + + // Mistral medium latest: + if (modelName.IndexOf("mistral-medium-latest") is not -1) + return + [ + Capability.TEXT_INPUT, + Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, + Capability.OPTIONAL_REASONING, + Capability.FUNCTION_CALLING, Capability.CHAT_COMPLETION_API, ]; @@ -34,8 +62,24 @@ private static List GetModelCapabilitiesMistral(Model model) if (modelName.IndexOf("mistral-medium-") is not -1) return [ - Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT, + Capability.TEXT_INPUT, + Capability.TEXT_OUTPUT, + + Capability.OPTIONAL_REASONING, + + Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, + ]; + + // Mistral small latest: + if (modelName.IndexOf("mistral-small-latest") is not -1) + return + [ + Capability.TEXT_INPUT, + Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, + + Capability.OPTIONAL_REASONING, Capability.FUNCTION_CALLING, Capability.CHAT_COMPLETION_API, @@ -45,8 +89,10 @@ private static List GetModelCapabilitiesMistral(Model model) if (modelName.IndexOf("mistral-small-") is not -1) return [ - Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT, + Capability.TEXT_INPUT, Capability.TEXT_OUTPUT, + + Capability.OPTIONAL_REASONING, Capability.FUNCTION_CALLING, Capability.CHAT_COMPLETION_API, diff --git a/app/MindWork AI Studio/Settings/ProviderExtensions.OpenSource.cs b/app/MindWork AI Studio/Settings/ProviderExtensions.OpenSource.cs index dc30e53b..1f1854b8 100644 --- a/app/MindWork AI Studio/Settings/ProviderExtensions.OpenSource.cs +++ b/app/MindWork AI Studio/Settings/ProviderExtensions.OpenSource.cs @@ -113,6 +113,18 @@ private static List GetModelCapabilitiesOpenSource(Model model) Capability.CHAT_COMPLETION_API, ]; + // Check for Qwen 3.6: + if(modelName.IndexOf("qwen3.6-plus") is not -1) + return + [ + Capability.TEXT_INPUT, Capability.VIDEO_INPUT, + Capability.MULTIPLE_IMAGE_INPUT, + Capability.TEXT_OUTPUT, + + Capability.ALWAYS_REASONING, Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, + ]; + if(modelName.IndexOf("-vl-") is not -1) return [ Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT, @@ -150,9 +162,49 @@ private static List GetModelCapabilitiesOpenSource(Model model) modelName.IndexOf("mistral-large-3") is not -1) return [ - Capability.TEXT_INPUT, Capability.MULTIPLE_IMAGE_INPUT, + Capability.TEXT_INPUT, + Capability.MULTIPLE_IMAGE_INPUT, Capability.TEXT_OUTPUT, - + + Capability.OPTIONAL_REASONING, + + Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, + ]; + + if (modelName.IndexOf("mistral-small-4") is not -1) + return + [ + Capability.TEXT_INPUT, + Capability.MULTIPLE_IMAGE_INPUT, + Capability.TEXT_OUTPUT, + + Capability.OPTIONAL_REASONING, + + Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, + ]; + + if (modelName.IndexOf("mistral-small-3") is not -1 || + modelName.IndexOf("mistral-small-4") is not -1) + return + [ + Capability.TEXT_INPUT, + Capability.MULTIPLE_IMAGE_INPUT, + Capability.TEXT_OUTPUT, + + Capability.OPTIONAL_REASONING, + + Capability.FUNCTION_CALLING, + Capability.CHAT_COMPLETION_API, + ]; + + if (modelName.IndexOf("mistral-small-") is not -1) + return + [ + Capability.TEXT_INPUT, + Capability.TEXT_OUTPUT, + Capability.FUNCTION_CALLING, Capability.CHAT_COMPLETION_API, ]; @@ -305,4 +357,4 @@ private static List GetModelCapabilitiesOpenSource(Model model) Capability.CHAT_COMPLETION_API, ]; } -} \ No newline at end of file +} diff --git a/app/MindWork AI Studio/wwwroot/changelog/v26.3.1.md b/app/MindWork AI Studio/wwwroot/changelog/v26.3.1.md index 7e20d451..5cb7a786 100644 --- a/app/MindWork AI Studio/wwwroot/changelog/v26.3.1.md +++ b/app/MindWork AI Studio/wwwroot/changelog/v26.3.1.md @@ -1,5 +1,5 @@ # v26.3.1, build 235 (2026-03-xx xx:xx UTC) -- Added support for the new Qwen 3.5 model family. +- Added support for the latest AI models, e.g., Qwen 3.5 & 3.6 Plus, Mistral Large 3 & Small 4, OpenAI GPT 5.4, etc. - Added assistant plugins, making it possible to extend AI Studio with custom assistants. Many thanks to Nils Kruthof `nilskruthoff` for this contribution. - Added a slide planner assistant, which helps you turn longer texts or documents into clear, structured presentation slides. Many thanks to Sabrina `Sabrina-devops` for her wonderful work on this assistant. - Added a reminder in chats and assistants that LLMs can make mistakes, helping you double-check important information more easily. @@ -8,7 +8,6 @@ - Added a start-page setting, so AI Studio can now open directly on your preferred page when the app starts. Configuration plugins can also provide and optionally lock this default for organizations. - Added pre-call validation to check if the selected model exists for the provider before making the request. - Added math rendering in chats for LaTeX display formulas, including block formats such as `$$ ... $$` and `\[ ... \]`. -- Added the latest OpenAI models. - Added support for mandatory information notices in configuration plugins. Organizations can now require users to read and confirm important information before continuing in AI Studio. - Released the document analysis assistant after an intense testing phase. - Improved enterprise deployment for organizations: administrators can now provide up to 10 centrally managed enterprise configuration slots, use policy files on Linux and macOS, and continue using older configuration formats as a fallback during migration.