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

[Resolver] API Retry on guess success #5187

Merged
merged 9 commits into from
Nov 30, 2024

Conversation

malhotra5
Copy link
Contributor

End-user friendly description of the problem this fixes or functionality that this introduces

  • Include this change in the Release Notes. If checked, you must provide an end-user friendly description for your change below

Give a summary of what the PR does, explaining any non-trivial design decisions

This PR partially addresses the problem of rate limit retries

  1. We've replaced all litellm.completion instances with the LLM class from Openhands proper. This class supports retry with the following configurable parameters:

    • LLM_NUM_RETRIES (Default of 8)
    • LLM_RETRY_MIN_WAIT (Default of 15 seconds)
    • LLM_RETRY_MAX_WAIT (Default of 120 seconds)
    • LLM_RETRY_MULTIPLIER (Default of 2)

    This refactor helps centralize retry mechanism logic and applies it on guess_success in openhands-resolver via the LLM class

  2. Updated test cases appropriately. Also added test cases for retry on rate limit exception for guess_success

Note: while this PR implements retry mechanism it is not a perfect solution for Anthropic's token per minute rate limit exceptions. However, if this PR is merged more sophisticated retry mechanism can be implemented openhands/llm/llm.py and openhands/llm/retry_mixin.py, which will apply to both Openhands proper and Openhands resolver.


Link of any specific issues this addresses
#5030
#5087

@enyst enyst requested a review from neubig November 26, 2024 04:37
Copy link
Contributor

@neubig neubig left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

Copy link
Collaborator

@enyst enyst left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah yes, this looks great, thanks! I didn't test it, pretty please give it a try before merging because, mmm, you know, these days we're using the resolver on top of main!

(livin' on the edge 😅)

@malhotra5
Copy link
Contributor Author

Tested locally (both issues and pr examples) and found no problems, merging changes 🚀

@malhotra5 malhotra5 merged commit b156b23 into All-Hands-AI:main Nov 30, 2024
12 checks passed
@malhotra5 malhotra5 deleted the resolver/api-retry branch November 30, 2024 17:53
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.

3 participants