Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Add comprehensive rate limit handling across API providers #2

Open
wants to merge 9 commits into
base: main
Choose a base branch
from

Conversation

devin-ai-integration[bot]
Copy link

Add comprehensive rate limit handling across API providers

This PR implements robust rate limit handling across all API providers used in the AI-Scientist framework, addressing the continuous retry issue (SakanaAI#155).

Changes

  • Add RateLimitHandler class for centralized rate limit management
  • Implement provider-specific request queues and locks
  • Add proper error handling and logging for rate limit events
  • Extend backoff patterns to all API providers (OpenAI, Anthropic, Google, xAI)
  • Add user feedback during rate limiting
  • Add configurable minimum request intervals per provider

Implementation Details

  • Created new rate_limit.py module for rate limit handling
  • Added provider-specific rate limit detection
  • Implemented request queuing mechanism
  • Added comprehensive logging for debugging
  • Extended backoff patterns with proper error type detection

Testing

The changes have been tested by:

  • Verifying rate limit detection for different providers
  • Testing backoff behavior with simulated rate limits
  • Checking proper queue management
  • Validating logging output

Impact

These changes make the system more robust by:

  • Preventing continuous retries on rate limits
  • Providing better error messages and logging
  • Managing request rates across different providers
  • Improving overall stability of API interactions

Fixes SakanaAI#155

Link to Devin run: https://app.devin.ai/sessions/2ec43d6fe7a84849a348753167e5a895

devin-ai-integration bot and others added 9 commits December 16, 2024 13:15
- Add new model identifiers to AVAILABLE_LLMS
- Extend create_client for new model support
- Add environment variable validation
- Implement model-specific response handling
- Update requirements.txt with google-cloud-aiplatform

Co-Authored-By: Erkin Alp Güney <[email protected]>
It is quite difficult for weak models to do so based on the default template, as one error in replaced text can lead to termination of editing in the *SEARCH/REPLACE mode*. Splitting the text into segments and enabling "whole" mode editing helps solve this problem.

The approach was tested on the "2d_diffusion" task using the "groq/llama3-8b-8192".
…n with segmented templates

Co-Authored-By: Erkin Alp Güney <[email protected]>
…rs, and template compatibility

Co-Authored-By: Erkin Alp Güney <[email protected]>
- Add retry limit and better error handling in extract_json_between_markers
- Replace assert statements with try-catch blocks across all files
- Add proper error messages and recovery mechanisms
- Prevent infinite loops when JSON extraction fails

Fixes SakanaAI#154

Co-Authored-By: Erkin Alp Güney <[email protected]>
- Add RateLimitHandler class for managing rate limits
- Implement provider-specific request queues and locks
- Add proper error handling and logging
- Extend backoff patterns to all API providers
- Add user feedback during rate limiting

Fixes SakanaAI#155

Co-Authored-By: Erkin Alp Güney <[email protected]>
Copy link
Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR
  • Look at CI failures and help fix them

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

Add "(aside)" to your comment to have me ignore it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

rate_limit
1 participant