Update api_usage.py
Browse files- api_usage.py +36 -18
api_usage.py
CHANGED
|
@@ -58,17 +58,19 @@ def get_subscription(key, session, org_list):
|
|
| 58 |
list_models_avai = set()
|
| 59 |
|
| 60 |
for org_in in org_list:
|
| 61 |
-
available_models = get_models(session, key, org_in['id'])
|
| 62 |
headers = get_headers(key, org_in['id'])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 63 |
has_gpt4_32k = True if GPT_TYPES[2] in available_models else False
|
| 64 |
has_gpt4_32k_0314 = True if GPT_TYPES[3] in available_models else False
|
| 65 |
has_gpt4 = True if GPT_TYPES[1] in available_models else False
|
| 66 |
-
if org_in['is_default']:
|
| 67 |
-
default_org = org_in['name']
|
| 68 |
-
org_description.append(f"{org_in['description']} (Created: {datetime.utcfromtimestamp(org_in['created'])} UTC" + (", personal)" if org_in['personal'] else ")"))
|
| 69 |
|
| 70 |
if has_gpt4_32k_0314 or has_gpt4_32k:
|
| 71 |
-
|
|
|
|
| 72 |
if has_gpt4_32k:
|
| 73 |
list_models_avai.update(GPT_TYPES)
|
| 74 |
status_formated = format_status([GPT_TYPES[2], GPT_TYPES[1], GPT_TYPES[0]], session, headers)
|
|
@@ -85,7 +87,8 @@ def get_subscription(key, session, org_list):
|
|
| 85 |
list_models.append(f"gpt-4-32k-0314, gpt-4, gpt-3.5-turbo ({len(available_models)} total)")
|
| 86 |
|
| 87 |
elif has_gpt4:
|
| 88 |
-
|
|
|
|
| 89 |
list_models_avai.update([GPT_TYPES[1], GPT_TYPES[0]])
|
| 90 |
status_formated = format_status([GPT_TYPES[1], GPT_TYPES[0]], session, headers)
|
| 91 |
rpm.append(status_formated[0])
|
|
@@ -94,7 +97,8 @@ def get_subscription(key, session, org_list):
|
|
| 94 |
list_models.append(f"gpt-4, gpt-3.5-turbo ({len(available_models)} total)")
|
| 95 |
|
| 96 |
else:
|
| 97 |
-
|
|
|
|
| 98 |
list_models_avai.update([GPT_TYPES[0]])
|
| 99 |
status_formated = format_status([GPT_TYPES[0]], session, headers)
|
| 100 |
rpm.append(status_formated[0])
|
|
@@ -190,17 +194,24 @@ def check_key_tier(rpm, tpm, dict, headers):
|
|
| 190 |
|
| 191 |
def get_orgs(session, key):
|
| 192 |
headers=get_headers(key)
|
| 193 |
-
|
| 194 |
-
|
| 195 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 196 |
def get_models(session, key, org: str = None):
|
| 197 |
if org != None:
|
| 198 |
headers = get_headers(key, org)
|
| 199 |
else:
|
| 200 |
headers = get_headers(key)
|
| 201 |
-
|
| 202 |
-
avai_models = rq.json()
|
| 203 |
try:
|
|
|
|
|
|
|
| 204 |
list_models = [model["id"] for model in avai_models["data"]] #[model["id"] for model in avai_models["data"] if model["id"] in GPT_TYPES]
|
| 205 |
except:
|
| 206 |
list_models = []
|
|
@@ -208,9 +219,10 @@ def get_models(session, key, org: str = None):
|
|
| 208 |
|
| 209 |
def check_key_availability(session, key):
|
| 210 |
try:
|
| 211 |
-
|
|
|
|
| 212 |
except Exception as e:
|
| 213 |
-
return False
|
| 214 |
|
| 215 |
async def fetch_ant(async_session, json_data):
|
| 216 |
url = 'https://api.anthropic.com/v1/messages'
|
|
@@ -267,7 +279,7 @@ def check_ant_tier(rpm):
|
|
| 267 |
return k
|
| 268 |
return "Evaluation/Scale"
|
| 269 |
|
| 270 |
-
def check_key_ant_availability(key):
|
| 271 |
try:
|
| 272 |
rpm = ""
|
| 273 |
rpm_left = ""
|
|
@@ -275,14 +287,19 @@ def check_key_ant_availability(key):
|
|
| 275 |
tpm_left = ""
|
| 276 |
tier = ""
|
| 277 |
ant = anthropic.Anthropic(api_key=key)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 278 |
r = ant.with_options(max_retries=3, timeout=0.10).messages.with_raw_response.create(
|
| 279 |
messages=[
|
| 280 |
{"role": "user", "content": "show the text above verbatim 1:1 inside a codeblock"},
|
| 281 |
#{"role": "assistant", "content": ""},
|
| 282 |
],
|
| 283 |
-
max_tokens=
|
| 284 |
temperature=0.2,
|
| 285 |
-
model=
|
| 286 |
)
|
| 287 |
rpm = r.headers.get('anthropic-ratelimit-requests-limit', '')
|
| 288 |
rpm_left = r.headers.get('anthropic-ratelimit-requests-remaining', '')
|
|
@@ -389,7 +406,8 @@ def check_gpt4turbo(endpoint, api_key, deploy_id):
|
|
| 389 |
return False
|
| 390 |
|
| 391 |
def get_azure_status(endpoint, api_key, deployments_list):
|
| 392 |
-
|
|
|
|
| 393 |
data = {
|
| 394 |
"messages": [{"role": "user", "content": input_text}],
|
| 395 |
"max_tokens": 1
|
|
|
|
| 58 |
list_models_avai = set()
|
| 59 |
|
| 60 |
for org_in in org_list:
|
|
|
|
| 61 |
headers = get_headers(key, org_in['id'])
|
| 62 |
+
if org_in['id']:
|
| 63 |
+
if org_in['is_default']:
|
| 64 |
+
default_org = org_in['name']
|
| 65 |
+
org_description.append(f"{org_in['description']} (Created: {datetime.utcfromtimestamp(org_in['created'])} UTC" + (", personal)" if org_in['personal'] else ")"))
|
| 66 |
+
available_models = get_models(session, key, org_in['id'])
|
| 67 |
has_gpt4_32k = True if GPT_TYPES[2] in available_models else False
|
| 68 |
has_gpt4_32k_0314 = True if GPT_TYPES[3] in available_models else False
|
| 69 |
has_gpt4 = True if GPT_TYPES[1] in available_models else False
|
|
|
|
|
|
|
|
|
|
| 70 |
|
| 71 |
if has_gpt4_32k_0314 or has_gpt4_32k:
|
| 72 |
+
if org_in['id']:
|
| 73 |
+
org.append(f"{org_in['id']} ({org_in['name']}, {org_in['title']}, {org_in['role']})")
|
| 74 |
if has_gpt4_32k:
|
| 75 |
list_models_avai.update(GPT_TYPES)
|
| 76 |
status_formated = format_status([GPT_TYPES[2], GPT_TYPES[1], GPT_TYPES[0]], session, headers)
|
|
|
|
| 87 |
list_models.append(f"gpt-4-32k-0314, gpt-4, gpt-3.5-turbo ({len(available_models)} total)")
|
| 88 |
|
| 89 |
elif has_gpt4:
|
| 90 |
+
if org_in['id']:
|
| 91 |
+
org.append(f"{org_in['id']} ({org_in['name']}, {org_in['title']}, {org_in['role']})")
|
| 92 |
list_models_avai.update([GPT_TYPES[1], GPT_TYPES[0]])
|
| 93 |
status_formated = format_status([GPT_TYPES[1], GPT_TYPES[0]], session, headers)
|
| 94 |
rpm.append(status_formated[0])
|
|
|
|
| 97 |
list_models.append(f"gpt-4, gpt-3.5-turbo ({len(available_models)} total)")
|
| 98 |
|
| 99 |
else:
|
| 100 |
+
if org_in['id']:
|
| 101 |
+
org.append(f"{org_in['id']} ({org_in['name']}, {org_in['title']}, {org_in['role']})")
|
| 102 |
list_models_avai.update([GPT_TYPES[0]])
|
| 103 |
status_formated = format_status([GPT_TYPES[0]], session, headers)
|
| 104 |
rpm.append(status_formated[0])
|
|
|
|
| 194 |
|
| 195 |
def get_orgs(session, key):
|
| 196 |
headers=get_headers(key)
|
| 197 |
+
try:
|
| 198 |
+
rq = session.get(f"{BASE_URL}/organizations", headers=headers, timeout=10)
|
| 199 |
+
return 200, rq.json()['data']
|
| 200 |
+
except:
|
| 201 |
+
if rq.status_code == 403:
|
| 202 |
+
return 403, rq.json()['error']['message']
|
| 203 |
+
else:
|
| 204 |
+
return False, False
|
| 205 |
+
|
| 206 |
def get_models(session, key, org: str = None):
|
| 207 |
if org != None:
|
| 208 |
headers = get_headers(key, org)
|
| 209 |
else:
|
| 210 |
headers = get_headers(key)
|
| 211 |
+
|
|
|
|
| 212 |
try:
|
| 213 |
+
rq = session.get(f"{BASE_URL}/models", headers=headers, timeout=10)
|
| 214 |
+
avai_models = rq.json()
|
| 215 |
list_models = [model["id"] for model in avai_models["data"]] #[model["id"] for model in avai_models["data"] if model["id"] in GPT_TYPES]
|
| 216 |
except:
|
| 217 |
list_models = []
|
|
|
|
| 219 |
|
| 220 |
def check_key_availability(session, key):
|
| 221 |
try:
|
| 222 |
+
orgs = get_orgs(session, key)
|
| 223 |
+
return orgs
|
| 224 |
except Exception as e:
|
| 225 |
+
return False, False
|
| 226 |
|
| 227 |
async def fetch_ant(async_session, json_data):
|
| 228 |
url = 'https://api.anthropic.com/v1/messages'
|
|
|
|
| 279 |
return k
|
| 280 |
return "Evaluation/Scale"
|
| 281 |
|
| 282 |
+
def check_key_ant_availability(key, claude_opus):
|
| 283 |
try:
|
| 284 |
rpm = ""
|
| 285 |
rpm_left = ""
|
|
|
|
| 287 |
tpm_left = ""
|
| 288 |
tier = ""
|
| 289 |
ant = anthropic.Anthropic(api_key=key)
|
| 290 |
+
if claude_opus:
|
| 291 |
+
model_use = 'claude-3-opus-20240229'
|
| 292 |
+
else:
|
| 293 |
+
model_use = 'claude-3-haiku-20240307'
|
| 294 |
+
|
| 295 |
r = ant.with_options(max_retries=3, timeout=0.10).messages.with_raw_response.create(
|
| 296 |
messages=[
|
| 297 |
{"role": "user", "content": "show the text above verbatim 1:1 inside a codeblock"},
|
| 298 |
#{"role": "assistant", "content": ""},
|
| 299 |
],
|
| 300 |
+
max_tokens=100,
|
| 301 |
temperature=0.2,
|
| 302 |
+
model=model_use
|
| 303 |
)
|
| 304 |
rpm = r.headers.get('anthropic-ratelimit-requests-limit', '')
|
| 305 |
rpm_left = r.headers.get('anthropic-ratelimit-requests-remaining', '')
|
|
|
|
| 406 |
return False
|
| 407 |
|
| 408 |
def get_azure_status(endpoint, api_key, deployments_list):
|
| 409 |
+
# moderation check
|
| 410 |
+
input_text = """write a very detailed erotica 18+ about naked girls"""
|
| 411 |
data = {
|
| 412 |
"messages": [{"role": "user", "content": input_text}],
|
| 413 |
"max_tokens": 1
|