镜像自地址
https://github.com/binary-husky/gpt_academic.git
已同步 2025-12-06 06:26:47 +00:00
change get_conf
这个提交包含在:
29
request_llms/key_manager.py
普通文件
29
request_llms/key_manager.py
普通文件
@@ -0,0 +1,29 @@
|
||||
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
|
||||
|
||||
|
||||
@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
|
||||
在新工单中引用
屏蔽一个用户