Fixed multithreading mutation issue
This commit is contained in:
@@ -218,6 +218,7 @@ public class SearchdomainHelper(ILogger<SearchdomainHelper> logger, DatabaseHelp
|
|||||||
{
|
{
|
||||||
searchdomain.ReconciliateOrInvalidateCacheForNewOrUpdatedEntity(preexistingEntity);
|
searchdomain.ReconciliateOrInvalidateCacheForNewOrUpdatedEntity(preexistingEntity);
|
||||||
}
|
}
|
||||||
|
searchdomain.UpdateModelsInUse();
|
||||||
return preexistingEntity;
|
return preexistingEntity;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -243,6 +244,7 @@ public class SearchdomainHelper(ILogger<SearchdomainHelper> logger, DatabaseHelp
|
|||||||
};
|
};
|
||||||
entityCache.Add(entity);
|
entityCache.Add(entity);
|
||||||
searchdomain.ReconciliateOrInvalidateCacheForNewOrUpdatedEntity(entity);
|
searchdomain.ReconciliateOrInvalidateCacheForNewOrUpdatedEntity(entity);
|
||||||
|
searchdomain.UpdateModelsInUse();
|
||||||
return entity;
|
return entity;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -216,6 +216,11 @@ public class Searchdomain
|
|||||||
return queryEmbeddings;
|
return queryEmbeddings;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void UpdateModelsInUse()
|
||||||
|
{
|
||||||
|
modelsInUse = GetModels([.. entityCache]);
|
||||||
|
}
|
||||||
|
|
||||||
private static float EvaluateEntityAgainstQueryEmbeddings(Entity entity, Dictionary<string, float[]> queryEmbeddings)
|
private static float EvaluateEntityAgainstQueryEmbeddings(Entity entity, Dictionary<string, float[]> queryEmbeddings)
|
||||||
{
|
{
|
||||||
List<(string, float)> datapointProbs = [];
|
List<(string, float)> datapointProbs = [];
|
||||||
@@ -237,16 +242,19 @@ public class Searchdomain
|
|||||||
public static List<string> GetModels(List<Entity> entities)
|
public static List<string> GetModels(List<Entity> entities)
|
||||||
{
|
{
|
||||||
List<string> result = [];
|
List<string> 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;
|
foreach ((string, float[]) tuple in datapoint.embeddings)
|
||||||
if (!result.Contains(model))
|
|
||||||
{
|
{
|
||||||
result.Add(model);
|
string model = tuple.Item1;
|
||||||
|
if (!result.Contains(model))
|
||||||
|
{
|
||||||
|
result.Add(model);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user