Files
keychecker/APIKey.py
T
2024-03-18 10:01:49 +10:00

79 lines
2.0 KiB
Python

from enum import Enum
class APIKey:
def __init__(self, provider, api_key):
self.provider = provider
self.api_key = api_key
if provider == Provider.OPENAI:
self.model = ""
self.trial = False
self.has_quota = False
self.default_org = ""
self.organizations = []
self.rpm = 0
self.tier = ""
self.has_special_models = False
self.the_one = False
elif provider == Provider.ANTHROPIC:
self.pozzed = False
self.rate_limited = False
self.has_quota = True
self.tier = ""
self.remaining_tokens = 0
elif provider == Provider.AI21:
self.trial_elapsed = False
elif provider == Provider.AWS:
self.username = ""
self.useless = True
self.admin_priv = False
self.bedrock_enabled = False
self.region = ""
self.alt_regions = []
self.useless_reasons = []
self.logged = False
elif provider == Provider.AZURE:
self.endpoint = ""
self.best_deployment = ""
self.model = ""
self.deployments = []
self.unfiltered = False
elif provider == Provider.VERTEXAI:
self.project_id = ""
elif provider == Provider.MISTRAL:
self.subbed = False
elif provider == Provider.MAKERSUITE:
self.models = []
elif provider == Provider.OPENROUTER:
self.usage = 0
self.credit_limit = 0
self.rpm = 0
self.balance = 0
self.limit_reached = False
self.bought_credits = False
def clone(self):
cloned_key = APIKey(self.provider, self.api_key)
cloned_key.__dict__ = self.__dict__.copy()
return cloned_key
class Provider(Enum):
OPENAI = 1,
ANTHROPIC = 2
AI21 = 3
MAKERSUITE = 4
AWS = 5
AZURE = 6
VERTEXAI = 7
MISTRAL = 8
OPENROUTER = 9