diff --git a/src/Server/Helper/SearchdomainHelper.cs b/src/Server/Helper/SearchdomainHelper.cs index 2e0d6b4..69b271f 100644 --- a/src/Server/Helper/SearchdomainHelper.cs +++ b/src/Server/Helper/SearchdomainHelper.cs @@ -218,6 +218,7 @@ public class SearchdomainHelper(ILogger logger, DatabaseHelp { searchdomain.ReconciliateOrInvalidateCacheForNewOrUpdatedEntity(preexistingEntity); } + searchdomain.UpdateModelsInUse(); return preexistingEntity; } else @@ -243,6 +244,7 @@ public class SearchdomainHelper(ILogger logger, DatabaseHelp }; entityCache.Add(entity); searchdomain.ReconciliateOrInvalidateCacheForNewOrUpdatedEntity(entity); + searchdomain.UpdateModelsInUse(); return entity; } } diff --git a/src/Server/Searchdomain.cs b/src/Server/Searchdomain.cs index 421fe8d..c764203 100644 --- a/src/Server/Searchdomain.cs +++ b/src/Server/Searchdomain.cs @@ -216,6 +216,11 @@ public class Searchdomain return queryEmbeddings; } + public void UpdateModelsInUse() + { + modelsInUse = GetModels([.. entityCache]); + } + private static float EvaluateEntityAgainstQueryEmbeddings(Entity entity, Dictionary queryEmbeddings) { List<(string, float)> datapointProbs = []; @@ -237,16 +242,19 @@ public class Searchdomain public static List GetModels(List entities) { List result = []; - foreach (Entity entity in entities) + lock (entities) { - foreach (Datapoint datapoint in entity.datapoints) + foreach (Entity entity in entities) { - foreach ((string, float[]) tuple in datapoint.embeddings) + foreach (Datapoint datapoint in entity.datapoints) { - string model = tuple.Item1; - if (!result.Contains(model)) + foreach ((string, float[]) tuple in datapoint.embeddings) { - result.Add(model); + string model = tuple.Item1; + if (!result.Contains(model)) + { + result.Add(model); + } } } }