#ifndef HUMANUS_MEMORY_MEM0_EMBEDDING_MODEL_BASE_H #define HUMANUS_MEMORY_MEM0_EMBEDDING_MODEL_BASE_H #include "httplib.h" #include "logger.h" #include #include #include namespace humanus::mem0 { class EmbeddingModel { private: static std::unordered_map> instances_; protected: std::shared_ptr config_; // Constructor EmbeddingModel(const std::shared_ptr& config) : config_(config) {} public: // Get the singleton instance static std::shared_ptr get_instance(const std::string& config_name = "default", const std::shared_ptr& config = nullptr); virtual ~EmbeddingModel() = default; virtual std::vector embed(const std::string& text, EmbeddingType type) = 0; }; } // namespace humanus::mem0 #endif // HUMANUS_MEMORY_MEM0_EMBEDDING_MODEL_BASE_H