diff --git a/Model/Changes_2026-06-18 AiModel default updaten.txt b/Model/Changes_2026-06-18 AiModel default updaten.txt new file mode 100644 index 000000000..484a63b84 --- /dev/null +++ b/Model/Changes_2026-06-18 AiModel default updaten.txt @@ -0,0 +1,10 @@ +INSERT INTO `.executedscripts` +VALUES ('Changes_2026-06-18 AiModel default updaten', CURDATE()); + +UPDATE `aiconfig` SET `SelectedModelOid` = ( + SELECT Oid + FROM aimodel + WHERE ModelName = "gemma3_12b_max_context:latest" + AND ModelSource = 2 + AND IsActive=1) +WHERE (`Oid` = '1'); \ No newline at end of file diff --git a/Service/Plugins/AiService2.cs b/Service/Plugins/AiService2.cs index 0dc4ea213..b79142018 100644 --- a/Service/Plugins/AiService2.cs +++ b/Service/Plugins/AiService2.cs @@ -313,13 +313,23 @@ namespace BeWo.Service.Plugins { var models = getAiModels(); - var model = models.FirstOrDefault(x => x.ModelName.Contains("gemma3") && x.ModelName.Contains("12b") && x.ModelName.Contains("max-context")) - ?? models.FirstOrDefault(x => x.ModelName.Contains("gemma3") && x.ModelName.Contains("12b")) - ?? models.FirstOrDefault(x => x.ModelName.Contains("gemma3")) - ?? models.FirstOrDefault(x => x.ModelName.Contains("llama")) - ?? models.FirstOrDefault(); + Func[] conditions = new Func[] + { + x => x.ModelSource == AiModelSource.ollama2, + x => x.ModelName.Contains("gemma3"), + x => x.ModelName.Contains("max"), + x => x.ModelName.Contains("context"), + x => x.ModelName.Contains("12b") + }; - return model; + for (int i = conditions.Length; i > 0; i--) + { + var match = models.FirstOrDefault(m => conditions.Take(i).All(c => c(m))); + if (match != null) + return match; + } + + return models.First(); } protected virtual IEnumerable getAiModels() {