From 0a43a454d9639eb9087e489afc5193b668221468 Mon Sep 17 00:00:00 2001 From: Jicheng Lu Date: Fri, 27 Mar 2026 00:02:15 -0500 Subject: [PATCH 1/2] disable cache on local --- .../Repository/FileRepository/FileRepository.KnowledgeBase.cs | 4 +++- .../Repository/MongoRepository.KnowledgeBase.cs | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Infrastructure/BotSharp.Core/Repository/FileRepository/FileRepository.KnowledgeBase.cs b/src/Infrastructure/BotSharp.Core/Repository/FileRepository/FileRepository.KnowledgeBase.cs index ad5ff7c7c..94b5aa0c5 100644 --- a/src/Infrastructure/BotSharp.Core/Repository/FileRepository/FileRepository.KnowledgeBase.cs +++ b/src/Infrastructure/BotSharp.Core/Repository/FileRepository/FileRepository.KnowledgeBase.cs @@ -111,7 +111,9 @@ public async Task> GetKnowledgeCollectionCon return configs; } +#if !DEBUG [SharpCache(10)] +#endif public async Task GetKnowledgeCollectionConfig(string collectionName, string vectorStroageProvider) { var configs = await GetKnowledgeCollectionConfigs(new VectorCollectionConfigFilter @@ -121,7 +123,7 @@ public async Task GetKnowledgeCollectionConfig(string co }); return configs?.FirstOrDefault(); } - #endregion +#endregion #region Documents diff --git a/src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.KnowledgeBase.cs b/src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.KnowledgeBase.cs index 49bbd9223..e4aa6797f 100644 --- a/src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.KnowledgeBase.cs +++ b/src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.KnowledgeBase.cs @@ -116,7 +116,9 @@ public async Task> GetKnowledgeCollectionCon }); } +#if !DEBUG [SharpCache(10)] +#endif public async Task GetKnowledgeCollectionConfig(string collectionName, string vectorStroageProvider) { var configs = await GetKnowledgeCollectionConfigs(new VectorCollectionConfigFilter From d1afd4c1adbf9acc20a45ee90eeb579684284ee7 Mon Sep 17 00:00:00 2001 From: Jicheng Lu <103353@smsassist.com> Date: Fri, 27 Mar 2026 09:55:07 -0500 Subject: [PATCH 2/2] minor change --- .../GraphDb/MembaseGraphDb.cs | 51 ++++++++++--------- .../Services/DemoRuleGraph.cs | 4 -- .../Settings/MembaseSettings.cs | 2 - 3 files changed, 26 insertions(+), 31 deletions(-) diff --git a/src/Plugins/BotSharp.Plugin.Membase/GraphDb/MembaseGraphDb.cs b/src/Plugins/BotSharp.Plugin.Membase/GraphDb/MembaseGraphDb.cs index be606fcbb..a9b5b0b43 100644 --- a/src/Plugins/BotSharp.Plugin.Membase/GraphDb/MembaseGraphDb.cs +++ b/src/Plugins/BotSharp.Plugin.Membase/GraphDb/MembaseGraphDb.cs @@ -24,31 +24,6 @@ public MembaseGraphDb( private const int RetryCount = 3; - private AsyncPolicy BuildRetryPolicy() - { - var settings = _services.GetRequiredService(); - var timeoutSeconds = (double)settings.TimeoutSecond / RetryCount; - - var timeoutPolicy = Policy.TimeoutAsync(TimeSpan.FromSeconds(timeoutSeconds)); - - var retryPolicy = Policy - .Handle() - .Or() - .Or() - .Or(ex => ex.StatusCode == HttpStatusCode.ServiceUnavailable) - .WaitAndRetryAsync( - retryCount: RetryCount, - sleepDurationProvider: retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)), - onRetry: (ex, timespan, retryAttempt, _) => - { - _logger.LogWarning(ex, - "CypherQueryAsync retry {RetryAttempt}/{MaxRetries} after {Delay}s. Exception: {Message}", - retryAttempt, RetryCount, timespan.TotalSeconds, ex.Message); - }); - - return Policy.WrapAsync(retryPolicy, timeoutPolicy); - } - public async Task ExecuteQueryAsync(string query, GraphQueryExecuteOptions? options = null) { if (string.IsNullOrEmpty(options?.GraphId)) @@ -87,4 +62,30 @@ public async Task ExecuteQueryAsync(string query, GraphQueryEx throw; } } + + + private AsyncPolicy BuildRetryPolicy() + { + var settings = _services.GetRequiredService(); + var timeoutSeconds = (double)settings.TimeoutSecond / RetryCount; + + var timeoutPolicy = Policy.TimeoutAsync(TimeSpan.FromSeconds(timeoutSeconds)); + + var retryPolicy = Policy + .Handle() + .Or() + .Or() + .Or(ex => ex.StatusCode == HttpStatusCode.ServiceUnavailable) + .WaitAndRetryAsync( + retryCount: RetryCount, + sleepDurationProvider: retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)), + onRetry: (ex, timespan, retryAttempt, _) => + { + _logger.LogWarning(ex, + "CypherQueryAsync retry {RetryAttempt}/{MaxRetries} after {Delay}s. Exception: {Message}", + retryAttempt, RetryCount, timespan.TotalSeconds, ex.Message); + }); + + return Policy.WrapAsync(retryPolicy, timeoutPolicy); + } } diff --git a/src/Plugins/BotSharp.Plugin.Membase/Services/DemoRuleGraph.cs b/src/Plugins/BotSharp.Plugin.Membase/Services/DemoRuleGraph.cs index aa10071ae..534ce06b7 100644 --- a/src/Plugins/BotSharp.Plugin.Membase/Services/DemoRuleGraph.cs +++ b/src/Plugins/BotSharp.Plugin.Membase/Services/DemoRuleGraph.cs @@ -1,11 +1,7 @@ -using BotSharp.Abstraction.Graph; -using BotSharp.Abstraction.Graph.Models; using BotSharp.Abstraction.Rules; using BotSharp.Abstraction.Rules.Models; using BotSharp.Abstraction.Rules.Options; using BotSharp.Abstraction.Utilities; -using Microsoft.Extensions.Logging; -using System.Text.Json; namespace BotSharp.Plugin.Membase.Services; diff --git a/src/Plugins/BotSharp.Plugin.Membase/Settings/MembaseSettings.cs b/src/Plugins/BotSharp.Plugin.Membase/Settings/MembaseSettings.cs index 7960a51b2..7101b268d 100644 --- a/src/Plugins/BotSharp.Plugin.Membase/Settings/MembaseSettings.cs +++ b/src/Plugins/BotSharp.Plugin.Membase/Settings/MembaseSettings.cs @@ -1,5 +1,3 @@ -using BotSharp.Abstraction.Graph.Models; - namespace BotSharp.Plugin.Membase.Settings; public class MembaseSettings