"""Base class for memory providers.""" import abc import openai from autogpt.config import AbstractSingleton, Config cfg = Config() def get_ada_embedding(text): text = text.replace("\n", " ") if cfg.use_azure: return openai.Embedding.create( input=[text], engine=cfg.get_azure_deployment_id_for_model("text-embedding-ada-002"), )["data"][0]["embedding"] else: return openai.Embedding.create(input=[text], model="text-embedding-ada-002")[ "data" ][0]["embedding"] class MemoryProviderSingleton(AbstractSingleton): @abc.abstractmethod def add(self, data): pass @abc.abstractmethod def get(self, data): pass @abc.abstractmethod def clear(self): pass @abc.abstractmethod def get_relevant(self, data, num_relevant=5): pass @abc.abstractmethod def get_stats(self): pass