5#include <unordered_map>
18 static const constexpr char*
NAME =
"SnapshotSimilarityFilter";
25 void configure(
const nlohmann::json& json)
override;
31 struct SimilarityResult
33 float similarity = 1.0f;
34 float importance = 1.0f;
37 float calculateSnapshotSimilarity(
40 SimilarityResult calculateInstanceSimilarity(
43 float parentImportance);
46 std::map<MemoryID, long> timestampLastCommitInMs;
47 float threshold = 1.0f;
48 std::size_t numSnapshots = 1;
49 FilterStatistics stats;
50 std::unordered_map<std::string, std::deque<armem::wm::EntitySnapshot>> lastAcceptedSnapshots;
void configure(const nlohmann::json &json) override
static const constexpr char * PARAM_THRESHOLD
virtual bool accept(const armem::wm::EntitySnapshot &e, bool simulatedVersion) override
static const constexpr char * PARAM_NUM_SNAPSHOTS
SnapshotSimilarityFilter()=default
std::string getName() override
FilterStatistics getFilterStatistics() override
static const constexpr char * NAME
Client-side working memory entity snapshot.
std::shared_ptr< Variant > VariantPtr