From a850c27dd553cf6da5b29ac025d68dcce24781dc Mon Sep 17 00:00:00 2001 From: Eesa Hamza Date: Wed, 12 Apr 2023 23:13:34 +0300 Subject: [PATCH 1/4] Improved logging on connection fail to redis --- scripts/memory/redismem.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/scripts/memory/redismem.py b/scripts/memory/redismem.py index 2082fe58..1267c4de 100644 --- a/scripts/memory/redismem.py +++ b/scripts/memory/redismem.py @@ -7,6 +7,8 @@ from redis.commands.search.indexDefinition import IndexDefinition, IndexType import numpy as np from memory.base import MemoryProviderSingleton, get_ada_embedding +from logger import logger +from colorama import Fore, Style SCHEMA = [ @@ -44,6 +46,18 @@ class RedisMemory(MemoryProviderSingleton): db=0 # Cannot be changed ) self.cfg = cfg + + # Check redis connection + try: + self.redis.ping() + except redis.ConnectionError as e: + logger.typewriter_log("FAILED TO CONNECT TO REDIS", Fore.RED, Style.BRIGHT + str(e) + Style.RESET_ALL) + logger.typewriter_log("DOUBLE CHECK CONFIGURATION", + Fore.YELLOW, + "Please ensure you have setup and configured redis properly for use. " + + f"You can check out {Fore.CYAN + Style.BRIGHT}https://github.com/Torantulino/Auto-GPT#redis-setup{Style.RESET_ALL} to ensure you've set up everything correctly.") + exit(1) + if cfg.wipe_redis_on_start: self.redis.flushall() try: From 5d871f04e6daef01de49d2b5949f6ca55b3cfbde Mon Sep 17 00:00:00 2001 From: Eesa Hamza Date: Wed, 12 Apr 2023 23:29:54 +0300 Subject: [PATCH 2/4] Added pinecone connectivity check and added relevant logging --- scripts/memory/pinecone.py | 16 ++++++++++++++-- scripts/memory/redismem.py | 2 +- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/scripts/memory/pinecone.py b/scripts/memory/pinecone.py index 8e1eaa57..eeafd9c9 100644 --- a/scripts/memory/pinecone.py +++ b/scripts/memory/pinecone.py @@ -2,7 +2,8 @@ import pinecone from memory.base import MemoryProviderSingleton, get_ada_embedding - +from logger import logger +from colorama import Fore, Style class PineconeMemory(MemoryProviderSingleton): def __init__(self, cfg): @@ -16,7 +17,18 @@ class PineconeMemory(MemoryProviderSingleton): # this assumes we don't start with memory. # for now this works. # we'll need a more complicated and robust system if we want to start with memory. - self.vec_num = 0 + self.vec_num = 0 + + try: + pinecone.whoami() + except Exception as e: + logger.typewriter_log("FAILED TO CONNECT TO PINECONE", Fore.RED, Style.BRIGHT + str(e) + Style.RESET_ALL) + logger.typewriter_log("DOUBLE CHECK CONFIGURATION", + Fore.YELLOW, + "Please ensure you have setup and configured Pinecone properly for use. " + + f"You can check out {Fore.CYAN + Style.BRIGHT}https://github.com/Torantulino/Auto-GPT#-pinecone-api-key-setup{Style.RESET_ALL} to ensure you've set up everything correctly.") + exit(1) + if table_name not in pinecone.list_indexes(): pinecone.create_index(table_name, dimension=dimension, metric=metric, pod_type=pod_type) self.index = pinecone.Index(table_name) diff --git a/scripts/memory/redismem.py b/scripts/memory/redismem.py index 1267c4de..b2d5326f 100644 --- a/scripts/memory/redismem.py +++ b/scripts/memory/redismem.py @@ -54,7 +54,7 @@ class RedisMemory(MemoryProviderSingleton): logger.typewriter_log("FAILED TO CONNECT TO REDIS", Fore.RED, Style.BRIGHT + str(e) + Style.RESET_ALL) logger.typewriter_log("DOUBLE CHECK CONFIGURATION", Fore.YELLOW, - "Please ensure you have setup and configured redis properly for use. " + + "Please ensure you have setup and configured Redis properly for use. " + f"You can check out {Fore.CYAN + Style.BRIGHT}https://github.com/Torantulino/Auto-GPT#redis-setup{Style.RESET_ALL} to ensure you've set up everything correctly.") exit(1) From 8c51fe8373aa6ec85b8b9c9a0b5c3b45d9d35ff6 Mon Sep 17 00:00:00 2001 From: Eesa Hamza Date: Wed, 12 Apr 2023 23:38:53 +0300 Subject: [PATCH 3/4] Added new logging function as an error or warning message --- scripts/logger.py | 5 +++++ scripts/memory/pinecone.py | 6 ++---- scripts/memory/redismem.py | 6 ++---- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/scripts/logger.py b/scripts/logger.py index a609e602..efc2adba 100644 --- a/scripts/logger.py +++ b/scripts/logger.py @@ -123,7 +123,12 @@ class Logger(metaclass=Singleton): def set_level(self, level): self.logger.setLevel(level) self.typing_logger.setLevel(level) + + def double_check(self, additionalText=None): + if not additionalText: + additionalText = "Please ensure you've setup and configured everything correctly. Read https://github.com/Torantulino/Auto-GPT#readme to double check. You can also create a github issue or join the discord and ask there!" + self.typewriter_log("DOUBLE CHECK CONFIGURATION", Fore.YELLOW, additionalText) ''' Output stream to console using simulated typing diff --git a/scripts/memory/pinecone.py b/scripts/memory/pinecone.py index eeafd9c9..9d033f5a 100644 --- a/scripts/memory/pinecone.py +++ b/scripts/memory/pinecone.py @@ -23,10 +23,8 @@ class PineconeMemory(MemoryProviderSingleton): pinecone.whoami() except Exception as e: logger.typewriter_log("FAILED TO CONNECT TO PINECONE", Fore.RED, Style.BRIGHT + str(e) + Style.RESET_ALL) - logger.typewriter_log("DOUBLE CHECK CONFIGURATION", - Fore.YELLOW, - "Please ensure you have setup and configured Pinecone properly for use. " + - f"You can check out {Fore.CYAN + Style.BRIGHT}https://github.com/Torantulino/Auto-GPT#-pinecone-api-key-setup{Style.RESET_ALL} to ensure you've set up everything correctly.") + logger.double_check("Please ensure you have setup and configured Pinecone properly for use. " + + f"You can check out {Fore.CYAN + Style.BRIGHT}https://github.com/Torantulino/Auto-GPT#-pinecone-api-key-setup{Style.RESET_ALL} to ensure you've set up everything correctly.") exit(1) if table_name not in pinecone.list_indexes(): diff --git a/scripts/memory/redismem.py b/scripts/memory/redismem.py index b2d5326f..6647cbca 100644 --- a/scripts/memory/redismem.py +++ b/scripts/memory/redismem.py @@ -52,10 +52,8 @@ class RedisMemory(MemoryProviderSingleton): self.redis.ping() except redis.ConnectionError as e: logger.typewriter_log("FAILED TO CONNECT TO REDIS", Fore.RED, Style.BRIGHT + str(e) + Style.RESET_ALL) - logger.typewriter_log("DOUBLE CHECK CONFIGURATION", - Fore.YELLOW, - "Please ensure you have setup and configured Redis properly for use. " + - f"You can check out {Fore.CYAN + Style.BRIGHT}https://github.com/Torantulino/Auto-GPT#redis-setup{Style.RESET_ALL} to ensure you've set up everything correctly.") + logger.double_check("Please ensure you have setup and configured Redis properly for use. " + + f"You can check out {Fore.CYAN + Style.BRIGHT}https://github.com/Torantulino/Auto-GPT#redis-setup{Style.RESET_ALL} to ensure you've set up everything correctly.") exit(1) if cfg.wipe_redis_on_start: From 76b5b957440df3f757185caf4ff9574029f04156 Mon Sep 17 00:00:00 2001 From: Eesa Hamza Date: Wed, 12 Apr 2023 23:49:32 +0300 Subject: [PATCH 4/4] Attempt to fix Linter issues --- scripts/logger.py | 3 ++- scripts/memory/pinecone.py | 4 ++-- scripts/memory/redismem.py | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/scripts/logger.py b/scripts/logger.py index efc2adba..b5a45de7 100644 --- a/scripts/logger.py +++ b/scripts/logger.py @@ -123,13 +123,14 @@ class Logger(metaclass=Singleton): def set_level(self, level): self.logger.setLevel(level) self.typing_logger.setLevel(level) - + def double_check(self, additionalText=None): if not additionalText: additionalText = "Please ensure you've setup and configured everything correctly. Read https://github.com/Torantulino/Auto-GPT#readme to double check. You can also create a github issue or join the discord and ask there!" self.typewriter_log("DOUBLE CHECK CONFIGURATION", Fore.YELLOW, additionalText) + ''' Output stream to console using simulated typing ''' diff --git a/scripts/memory/pinecone.py b/scripts/memory/pinecone.py index 9d033f5a..fa21124b 100644 --- a/scripts/memory/pinecone.py +++ b/scripts/memory/pinecone.py @@ -3,7 +3,7 @@ import pinecone from memory.base import MemoryProviderSingleton, get_ada_embedding from logger import logger -from colorama import Fore, Style +from colorama import Fore, Style class PineconeMemory(MemoryProviderSingleton): def __init__(self, cfg): @@ -17,7 +17,7 @@ class PineconeMemory(MemoryProviderSingleton): # this assumes we don't start with memory. # for now this works. # we'll need a more complicated and robust system if we want to start with memory. - self.vec_num = 0 + self.vec_num = 0 try: pinecone.whoami() diff --git a/scripts/memory/redismem.py b/scripts/memory/redismem.py index 6647cbca..49045dd8 100644 --- a/scripts/memory/redismem.py +++ b/scripts/memory/redismem.py @@ -8,7 +8,7 @@ import numpy as np from memory.base import MemoryProviderSingleton, get_ada_embedding from logger import logger -from colorama import Fore, Style +from colorama import Fore, Style SCHEMA = [