Update api_usage.py
Browse files- api_usage.py +22 -9
api_usage.py
CHANGED
|
@@ -434,12 +434,16 @@ def check_key_aws_availability(key):
|
|
| 434 |
quarantine = True
|
| 435 |
|
| 436 |
enable_region = check_bedrock_invoke(session)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 437 |
cost = check_aws_billing(session)
|
| 438 |
-
if enable_region:
|
| 439 |
-
return True, username[0], root, admin, quarantine,
|
| 440 |
-
|
| 441 |
-
return True, username[0], root, admin, quarantine, "None", cost
|
| 442 |
-
return True, username[0], root, admin, quarantine, "None", cost
|
| 443 |
|
| 444 |
def check_username(session):
|
| 445 |
try:
|
|
@@ -469,13 +473,13 @@ def invoke_claude(session, region, modelId):
|
|
| 469 |
response = bedrock_runtime.invoke_model(body=body, modelId=modelId)
|
| 470 |
except bedrock_runtime.exceptions.ValidationException as error:
|
| 471 |
#print(error.response['Error'])
|
| 472 |
-
|
|
|
|
| 473 |
except bedrock_runtime.exceptions.AccessDeniedException as error:
|
| 474 |
#print(error.response['Error'])
|
| 475 |
return
|
| 476 |
except bedrock_runtime.exceptions.ResourceNotFoundException as error:
|
| 477 |
#print(error.response['Error'])
|
| 478 |
-
return invoke_claude(session, region, "anthropic.claude-v2:1")
|
| 479 |
except Exception as e:
|
| 480 |
#print(e)
|
| 481 |
return
|
|
@@ -483,12 +487,21 @@ def invoke_claude(session, region, modelId):
|
|
| 483 |
def check_bedrock_invoke(session):
|
| 484 |
regions = ['us-east-1', 'us-west-2', 'eu-central-1', 'ap-southeast-1', 'ap-northeast-1']
|
| 485 |
enable_region = []
|
|
|
|
| 486 |
with concurrent.futures.ThreadPoolExecutor() as executer:
|
| 487 |
futures = [executer.submit(invoke_claude, session, region, "anthropic.claude-v2") for region in regions]
|
| 488 |
for future in concurrent.futures.as_completed(futures):
|
| 489 |
if future.result():
|
| 490 |
-
enable_region.append(future.result())
|
| 491 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 492 |
|
| 493 |
def check_aws_billing(session):
|
| 494 |
try:
|
|
|
|
| 434 |
quarantine = True
|
| 435 |
|
| 436 |
enable_region = check_bedrock_invoke(session)
|
| 437 |
+
enable_region_v2 = "None"
|
| 438 |
+
enable_region_sonnet = "None"
|
| 439 |
+
if enable_region[0]:
|
| 440 |
+
enable_region_v2 = enable_region[0]
|
| 441 |
+
if enable_region[1]:
|
| 442 |
+
enable_region_sonnet = enable_region[1]
|
| 443 |
cost = check_aws_billing(session)
|
| 444 |
+
if enable_region[0]:
|
| 445 |
+
return True, username[0], root, admin, quarantine, enable_region_v2, enable_region_sonnet, cost
|
| 446 |
+
return True, username[0], root, admin, quarantine, enable_region_v2, enable_region_sonnet, cost
|
|
|
|
|
|
|
| 447 |
|
| 448 |
def check_username(session):
|
| 449 |
try:
|
|
|
|
| 473 |
response = bedrock_runtime.invoke_model(body=body, modelId=modelId)
|
| 474 |
except bedrock_runtime.exceptions.ValidationException as error:
|
| 475 |
#print(error.response['Error'])
|
| 476 |
+
if 'max_tokens_to_sample' in error.response['Error']['Message']:
|
| 477 |
+
return region
|
| 478 |
except bedrock_runtime.exceptions.AccessDeniedException as error:
|
| 479 |
#print(error.response['Error'])
|
| 480 |
return
|
| 481 |
except bedrock_runtime.exceptions.ResourceNotFoundException as error:
|
| 482 |
#print(error.response['Error'])
|
|
|
|
| 483 |
except Exception as e:
|
| 484 |
#print(e)
|
| 485 |
return
|
|
|
|
| 487 |
def check_bedrock_invoke(session):
|
| 488 |
regions = ['us-east-1', 'us-west-2', 'eu-central-1', 'ap-southeast-1', 'ap-northeast-1']
|
| 489 |
enable_region = []
|
| 490 |
+
enable_region_sonnet = []
|
| 491 |
with concurrent.futures.ThreadPoolExecutor() as executer:
|
| 492 |
futures = [executer.submit(invoke_claude, session, region, "anthropic.claude-v2") for region in regions]
|
| 493 |
for future in concurrent.futures.as_completed(futures):
|
| 494 |
if future.result():
|
| 495 |
+
enable_region.append(future.result())
|
| 496 |
+
futures = [executer.submit(invoke_claude, session, region, "anthropic.claude-v2:1") for region in regions]
|
| 497 |
+
for future in concurrent.futures.as_completed(futures):
|
| 498 |
+
if future.result():
|
| 499 |
+
enable_region.append(future.result())
|
| 500 |
+
futures = [executer.submit(invoke_claude, session, region, "anthropic.claude-3-sonnet-20240229-v1:0") for region in regions]
|
| 501 |
+
for future in concurrent.futures.as_completed(futures):
|
| 502 |
+
if future.result():
|
| 503 |
+
enable_region_sonnet.append(future.result())
|
| 504 |
+
return enable_region, enable_region_sonnet
|
| 505 |
|
| 506 |
def check_aws_billing(session):
|
| 507 |
try:
|