Implementace ošetření rate limitů
TrailBlaze je AI platforma pro rezervaci dobrodružných cestování. Její chatovací asistent čelí náporu dotazů na itineráře vždy, když se objeví nové letecké nabídky. Vytvoříš pomocnou funkci, která si poradí s throttlingem Bedrocku pomocí exponenciálního back-offu.
Knihovny json, time a boto3 jsou přednahrané. Klient bedrock a proměnná model_id jsou také k dispozici.
Toto cvičení je součástí kurzu
Úvod do Amazon Bedrock
Pokyny k cvičení
- Dokonči řetězec API požadavku s promptem.
- Implementuj exponenciální backoff.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
def smart_retry(prompt, max_attempts=3):
base_delay = 0.5
for attempt in range(max_attempts):
try:
# Complete the API request string with the prompt
response = bedrock.invoke_model(
modelId=model_id,
body=json.dumps({"anthropic_version": "bedrock-2023-05-31", "max_tokens": 100,
"messages": [{"role": "user", "content": [{"type": "text", "text": ____}]}]}))
return json.loads(response["body"].read().decode())["content"][0]["text"]
except Exception as e:
if "ThrottlingException" in str(e):
# Implement exponential backoff
time.sleep(____)
else: raise e
return "Max retries exceeded"
print(smart_retry("Tell me about hiking in Patagonia."))