| | """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 |
| |
|