Spaces:
Running
Running
import random | |
def Singleton(cls): | |
_instance = {} | |
def _singleton(*args, **kargs): | |
if cls not in _instance: | |
_instance[cls] = cls(*args, **kargs) | |
return _instance[cls] | |
return _singleton | |
class OpenAI_ApiKeyManager(): | |
def __init__(self, mode='blacklist') -> None: | |
# self.key_avail_list = [] | |
self.key_black_list = [] | |
def add_key_to_blacklist(self, key): | |
self.key_black_list.append(key) | |
def select_avail_key(self, key_list): | |
# select key from key_list, but avoid keys also in self.key_black_list, raise error if no key can be found | |
available_keys = [key for key in key_list if key not in self.key_black_list] | |
if not available_keys: | |
raise KeyError("No available key found.") | |
selected_key = random.choice(available_keys) | |
return selected_key |