100 lines
2.6 KiB
Python
100 lines
2.6 KiB
Python
from autogpt.memory.local import LocalCache
|
|
from autogpt.memory.no_memory import NoMemory
|
|
|
|
# List of supported memory backends
|
|
# Add a backend to this list if the import attempt is successful
|
|
supported_memory = ["local", "no_memory"]
|
|
|
|
try:
|
|
from autogpt.memory.redismem import RedisMemory
|
|
|
|
supported_memory.append("redis")
|
|
except ImportError:
|
|
# print("Redis not installed. Skipping import.")
|
|
RedisMemory = None
|
|
|
|
try:
|
|
from autogpt.memory.pinecone import PineconeMemory
|
|
|
|
supported_memory.append("pinecone")
|
|
except ImportError:
|
|
# print("Pinecone not installed. Skipping import.")
|
|
PineconeMemory = None
|
|
|
|
try:
|
|
from autogpt.memory.weaviate import WeaviateMemory
|
|
|
|
supported_memory.append("weaviate")
|
|
except ImportError:
|
|
# print("Weaviate not installed. Skipping import.")
|
|
WeaviateMemory = None
|
|
|
|
try:
|
|
from autogpt.memory.milvus import MilvusMemory
|
|
|
|
supported_memory.append("milvus")
|
|
except ImportError:
|
|
# print("pymilvus not installed. Skipping import.")
|
|
MilvusMemory = None
|
|
|
|
|
|
def get_memory(cfg, init=False):
|
|
memory = None
|
|
if cfg.memory_backend == "pinecone":
|
|
if not PineconeMemory:
|
|
print(
|
|
"Error: Pinecone is not installed. Please install pinecone"
|
|
" to use Pinecone as a memory backend."
|
|
)
|
|
else:
|
|
memory = PineconeMemory(cfg)
|
|
if init:
|
|
memory.clear()
|
|
elif cfg.memory_backend == "redis":
|
|
if not RedisMemory:
|
|
print(
|
|
"Error: Redis is not installed. Please install redis-py to"
|
|
" use Redis as a memory backend."
|
|
)
|
|
else:
|
|
memory = RedisMemory(cfg)
|
|
elif cfg.memory_backend == "weaviate":
|
|
if not WeaviateMemory:
|
|
print(
|
|
"Error: Weaviate is not installed. Please install weaviate-client to"
|
|
" use Weaviate as a memory backend."
|
|
)
|
|
else:
|
|
memory = WeaviateMemory(cfg)
|
|
elif cfg.memory_backend == "milvus":
|
|
if not MilvusMemory:
|
|
print(
|
|
"Error: Milvus sdk is not installed."
|
|
"Please install pymilvus to use Milvus as memory backend."
|
|
)
|
|
else:
|
|
memory = MilvusMemory(cfg)
|
|
elif cfg.memory_backend == "no_memory":
|
|
memory = NoMemory(cfg)
|
|
|
|
if memory is None:
|
|
memory = LocalCache(cfg)
|
|
if init:
|
|
memory.clear()
|
|
return memory
|
|
|
|
|
|
def get_supported_memory_backends():
|
|
return supported_memory
|
|
|
|
|
|
__all__ = [
|
|
"get_memory",
|
|
"LocalCache",
|
|
"RedisMemory",
|
|
"PineconeMemory",
|
|
"NoMemory",
|
|
"MilvusMemory",
|
|
"WeaviateMemory",
|
|
]
|