diff --git a/src/Infrastructure/BotSharp.Core/Agents/Services/AgentService.CreateAgent.cs b/src/Infrastructure/BotSharp.Core/Agents/Services/AgentService.CreateAgent.cs index b88322dc..772c21f9 100644 --- a/src/Infrastructure/BotSharp.Core/Agents/Services/AgentService.CreateAgent.cs +++ b/src/Infrastructure/BotSharp.Core/Agents/Services/AgentService.CreateAgent.cs @@ -60,6 +60,8 @@ public partial class AgentService _db.Add(userAgentRecord); }); + Utilities.ClearCache(); + return agentRecord; } diff --git a/src/Infrastructure/BotSharp.Core/Agents/Services/AgentService.RefreshAgents.cs b/src/Infrastructure/BotSharp.Core/Agents/Services/AgentService.RefreshAgents.cs index e9b054be..f644faea 100644 --- a/src/Infrastructure/BotSharp.Core/Agents/Services/AgentService.RefreshAgents.cs +++ b/src/Infrastructure/BotSharp.Core/Agents/Services/AgentService.RefreshAgents.cs @@ -1,6 +1,6 @@ using BotSharp.Abstraction.Agents.Models; -using BotSharp.Abstraction.Conversations.Models; using BotSharp.Abstraction.Repositories; +using Microsoft.Extensions.Caching.Memory; using System.IO; namespace BotSharp.Core.Agents.Services; @@ -51,5 +51,7 @@ public partial class AgentService _db.BulkInsertAgents(agents); _db.BulkInsertUserAgents(userAgents); + + Utilities.ClearCache(); } } diff --git a/src/Infrastructure/BotSharp.Core/Agents/Services/AgentService.UpdateAgent.cs b/src/Infrastructure/BotSharp.Core/Agents/Services/AgentService.UpdateAgent.cs index b8c329e3..5058d432 100644 --- a/src/Infrastructure/BotSharp.Core/Agents/Services/AgentService.UpdateAgent.cs +++ b/src/Infrastructure/BotSharp.Core/Agents/Services/AgentService.UpdateAgent.cs @@ -33,6 +33,9 @@ public partial class AgentService } _db.UpdateAgent(record, updateField); + + Utilities.ClearCache(); + await Task.CompletedTask; } @@ -66,6 +69,8 @@ public partial class AgentService .SetLlmConfig(foundAgent.LlmConfig); _db.UpdateAgent(clonedAgent, AgentField.All); + + Utilities.ClearCache(); } await Task.CompletedTask; diff --git a/src/Infrastructure/BotSharp.Core/Infrastructures/Utilities.cs b/src/Infrastructure/BotSharp.Core/Infrastructures/Utilities.cs index a75e6ce7..b428c86b 100644 --- a/src/Infrastructure/BotSharp.Core/Infrastructures/Utilities.cs +++ b/src/Infrastructure/BotSharp.Core/Infrastructures/Utilities.cs @@ -1,3 +1,5 @@ +using Microsoft.Extensions.Caching.Memory; + namespace BotSharp.Core.Infrastructures; public static class Utilities @@ -20,4 +22,13 @@ public static class Utilities var splits = str.Split(sep); return (splits[0], splits[1]); } + + public static void ClearCache() + { + // Clear whole cache. + if (new MemoryCacheAttribute(0).Cache is MemoryCache memcache) + { + memcache.Compact(100); + } + } } diff --git a/src/Infrastructure/BotSharp.OpenAPI/Controllers/AgentController.cs b/src/Infrastructure/BotSharp.OpenAPI/Controllers/AgentController.cs index ec7087d6..208c28b7 100644 --- a/src/Infrastructure/BotSharp.OpenAPI/Controllers/AgentController.cs +++ b/src/Infrastructure/BotSharp.OpenAPI/Controllers/AgentController.cs @@ -1,6 +1,3 @@ -using BotSharp.Abstraction.Agents.Models; -using BotSharp.Abstraction.Functions.Models; - namespace BotSharp.OpenAPI.Controllers; [Authorize]