From 083ccb6bd36957f69c40a3103986ab37457920a1 Mon Sep 17 00:00:00 2001 From: Eesa Hamza Date: Wed, 12 Apr 2023 16:58:39 +0300 Subject: [PATCH 1/2] Added a memory backend argument --- scripts/main.py | 12 +++++++++++- scripts/memory/__init__.py | 8 +++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/scripts/main.py b/scripts/main.py index 15af0c3812..c5963635bf 100644 --- a/scripts/main.py +++ b/scripts/main.py @@ -2,7 +2,7 @@ import json import random import commands as cmd import utils -from memory import get_memory +from memory import get_memory, get_supported_memory_backends import data import chat from colorama import Fore, Style @@ -276,6 +276,7 @@ def parse_arguments(): parser.add_argument('--debug', action='store_true', help='Enable Debug Mode') parser.add_argument('--gpt3only', action='store_true', help='Enable GPT3.5 Only Mode') parser.add_argument('--gpt4only', action='store_true', help='Enable GPT4 Only Mode') + parser.add_argument('--use-memory', '-m', dest="memory_type", help='Defines which Memory backend to use') args = parser.parse_args() if args.continuous: @@ -302,6 +303,15 @@ def parse_arguments(): print_to_console("Debug Mode: ", Fore.GREEN, "ENABLED") cfg.set_debug_mode(True) + if args.memory_type: + supported_memory = get_supported_memory_backends() + chosen = args.memory_type + if not chosen in supported_memory: + print_to_console("ONLY THE FOLLOWING MEMORY BACKENDS ARE SUPPORTED: ", Fore.RED, f'{supported_memory}') + print_to_console(f"Defaulting to: ", Fore.YELLOW, cfg.memory_backend) + else: + cfg.memory_backend = chosen + # TODO: fill in llm values here check_openai_api_key() diff --git a/scripts/memory/__init__.py b/scripts/memory/__init__.py index a441a46aa9..f4ba5206d3 100644 --- a/scripts/memory/__init__.py +++ b/scripts/memory/__init__.py @@ -1,17 +1,21 @@ from memory.local import LocalCache + +supported_memory = ['local'] + try: from memory.redismem import RedisMemory + supported_memory.append('redis') except ImportError: print("Redis not installed. Skipping import.") RedisMemory = None try: from memory.pinecone import PineconeMemory + supported_memory.append('pinecone') except ImportError: print("Pinecone not installed. Skipping import.") PineconeMemory = None - def get_memory(cfg, init=False): memory = None if cfg.memory_backend == "pinecone": @@ -35,6 +39,8 @@ def get_memory(cfg, init=False): memory.clear() return memory +def get_supported_memory_backends(): + return supported_memory __all__ = [ "get_memory", From ec6918ab48626311c9d3cc096e5d8d111f690b52 Mon Sep 17 00:00:00 2001 From: Eesa Hamza Date: Wed, 12 Apr 2023 16:59:50 +0300 Subject: [PATCH 2/2] Added some comments --- scripts/memory/__init__.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/memory/__init__.py b/scripts/memory/__init__.py index f4ba5206d3..2900353ed9 100644 --- a/scripts/memory/__init__.py +++ b/scripts/memory/__init__.py @@ -1,5 +1,7 @@ from memory.local import LocalCache +# List of supported memory backends +# Add a backend to this list if the import attempt is successful supported_memory = ['local'] try: