Bird
Raised Fist0
Prompt Engineering / GenAIml~5 mins

Error handling and rate limits in Prompt Engineering / GenAI - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is the purpose of error handling in AI model APIs?
Error handling helps catch and manage problems like invalid inputs or server issues, so the system can respond gracefully without crashing.
Click to reveal answer
beginner
Define rate limits in the context of AI services.
Rate limits control how many requests a user or app can send to an AI service in a set time, preventing overload and ensuring fair use.
Click to reveal answer
beginner
Name two common types of errors you might handle when calling an AI API.
1. Client errors (like bad input data). 2. Server errors (like service downtime).
Click to reveal answer
beginner
Why is it important to respect rate limits when using AI APIs?
Respecting rate limits avoids being blocked or slowed down, and helps keep the service stable for everyone.
Click to reveal answer
intermediate
What is a common strategy to handle hitting a rate limit?
A common strategy is to wait (backoff) and retry the request after some time, often increasing wait time if repeated limits occur.
Click to reveal answer
What does a 429 HTTP status code usually mean when calling an AI API?
ARequest timeout
BInvalid API key
CServer internal error
DToo many requests - rate limit exceeded
Which of these is NOT a good practice for error handling with AI APIs?
ALogging errors for debugging
BRetrying immediately without delay after an error
CChecking error codes to decide next steps
DGracefully informing users about issues
What is the main goal of implementing rate limits on AI services?
ATo make APIs harder to use
BTo increase server costs
CTo prevent abuse and ensure fair access
DTo reduce the number of users
If an AI API returns an error due to invalid input, what should your program do?
AFix or ask for correct input before retrying
BIgnore the error and continue
CRetry the same request endlessly
DShut down immediately
What technique helps reduce hitting rate limits when making many AI API calls?
ASpreading requests over time (throttling)
BSending all requests at once
CUsing multiple invalid API keys
DIgnoring rate limit warnings
Explain why error handling and rate limits are important when working with AI APIs.
Think about what happens if too many requests come in or if something goes wrong.
You got /4 concepts.
    Describe a simple approach to handle hitting a rate limit during AI API calls.
    Consider how to be polite to the service and avoid repeated errors.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of using error handling in AI applications?
      easy
      A. To keep the app running smoothly even when problems happen
      B. To speed up the AI model training process
      C. To increase the number of requests sent to the server
      D. To reduce the size of the AI model

      Solution

      1. Step 1: Understand error handling purpose

        Error handling is used to manage unexpected problems during app execution.
      2. Step 2: Connect to AI app context

        In AI apps, error handling helps keep the app running smoothly despite issues.
      3. Final Answer:

        To keep the app running smoothly even when problems happen -> Option A
      4. Quick Check:

        Error handling = keep app running smoothly [OK]
      Hint: Error handling means catching problems to avoid crashes [OK]
      Common Mistakes:
      • Thinking error handling speeds up training
      • Confusing error handling with increasing requests
      • Believing error handling reduces model size
      2. Which Python syntax correctly catches an error when calling an AI API?
      easy
      A. try: response = call_api() except: print('Error occurred')
      B. catch: response = call_api() try: print('Error occurred')
      C. if error: response = call_api() else: print('Error occurred')
      D. error handling: response = call_api() except: print('Error occurred')

      Solution

      1. Step 1: Identify correct try-except syntax

        Python uses try: block followed by except: to catch errors.
      2. Step 2: Match syntax with options

        try: response = call_api() except: print('Error occurred') uses correct try-except structure; others use invalid keywords.
      3. Final Answer:

        try:\n response = call_api()\nexcept:\n print('Error occurred') -> Option A
      4. Quick Check:

        try-except syntax = try: response = call_api() except: print('Error occurred') [OK]
      Hint: Remember Python uses try: and except: blocks [OK]
      Common Mistakes:
      • Using catch instead of except
      • Using if error instead of try-except
      • Writing invalid keywords like error handling:
      3. What will the following Python code print if the API returns a rate limit error?
      import time
      
      try:
          response = call_api()
      except RateLimitError:
          print('Rate limit hit, waiting...')
          time.sleep(10)
          response = call_api()
      print('Done')
      medium
      A. Error: RateLimitError not caught
      B. Done
      C. Rate limit hit, waiting...
      D. Rate limit hit, waiting...\nDone

      Solution

      1. Step 1: Understand try-except with RateLimitError

        If call_api() raises RateLimitError, except block runs printing message and waits 10 seconds.
      2. Step 2: After waiting, call_api() runs again and then prints 'Done'

        So output includes the message and 'Done' on separate lines.
      3. Final Answer:

        Rate limit hit, waiting...\nDone -> Option D
      4. Quick Check:

        RateLimitError caught, message + Done printed [OK]
      Hint: Exception caught prints message then continues [OK]
      Common Mistakes:
      • Assuming no message prints
      • Thinking program crashes on rate limit
      • Ignoring the second call_api() after sleep
      4. Identify the error in this code snippet handling rate limits:
      try:
          response = call_api()
      except RateLimitError
          print('Too many requests')
          time.sleep(5)
          response = call_api()
      medium
      A. call_api() should not be retried
      B. time.sleep() cannot be used in except block
      C. Missing colon after except RateLimitError
      D. print statement syntax is incorrect

      Solution

      1. Step 1: Check except syntax

        Python requires a colon ':' after except RateLimitError to start the block.
      2. Step 2: Verify other parts

        time.sleep() is valid, retrying call_api() is allowed, print syntax is correct.
      3. Final Answer:

        Missing colon after except RateLimitError -> Option C
      4. Quick Check:

        except needs colon ':' [OK]
      Hint: except lines always end with a colon ':' [OK]
      Common Mistakes:
      • Forgetting colon after except
      • Thinking sleep() is invalid in except
      • Believing retry is not allowed
      5. You want to build an AI app that calls an API but respects rate limits by retrying after waiting. Which code snippet correctly implements this with error handling and exponential backoff?
      hard
      A. import time wait = 1 for _ in range(3): try: response = call_api() break except RateLimitError: time.sleep(wait) wait *= 2
      B. import time wait = 1 while True: try: response = call_api() break except RateLimitError: time.sleep(wait) wait *= 2
      C. import time wait = 1 for _ in range(3): try: response = call_api() except RateLimitError: wait *= 2 time.sleep(wait) else: break
      D. import time wait = 1 while True: try: response = call_api() except RateLimitError: time.sleep(wait) wait += 1 else: break

      Solution

      1. Step 1: Understand exponential backoff with retries

        We want to retry after waiting, doubling wait time each failure, and stop on success.
      2. Step 2: Analyze options for correct loop and break

        import time wait = 1 while True: try: response = call_api() break except RateLimitError: time.sleep(wait) wait *= 2 uses while True loop, tries call_api(), breaks on success, and doubles wait after RateLimitError.
      3. Step 3: Check other options

        import time wait = 1 for _ in range(3): try: response = call_api() break except RateLimitError: time.sleep(wait) wait *= 2 breaks on success but uses for loop with fixed tries (less flexible). import time wait = 1 while True: try: response = call_api() except RateLimitError: time.sleep(wait) wait += 1 else: break increments wait linearly, not exponential. import time wait = 1 for _ in range(3): try: response = call_api() except RateLimitError: wait *= 2 time.sleep(wait) else: break doubles wait before sleep, but order is less clear.
      4. Final Answer:

        import time wait = 1 while True: try: response = call_api() break except RateLimitError: time.sleep(wait) wait *= 2 -> Option B
      5. Quick Check:

        Retry loop with exponential backoff = import time wait = 1 while True: try: response = call_api() break except RateLimitError: time.sleep(wait) wait *= 2 [OK]
      Hint: Use while True with break and double wait after error [OK]
      Common Mistakes:
      • Using for loop limits retries too strictly
      • Incrementing wait linearly instead of doubling
      • Not breaking loop on success