-
Notifications
You must be signed in to change notification settings - Fork 5.1k
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
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks!
There was a problem hiding this 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 😅)
Tested locally (both issues and pr examples) and found no problems, merging changes 🚀 |
End-user friendly description of the problem this fixes or functionality that this introduces
Give a summary of what the PR does, explaining any non-trivial design decisions
This PR partially addresses the problem of rate limit retries
We've replaced all
litellm.completion
instances with theLLM
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
inopenhands-resolver
via theLLM
classUpdated 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
andopenhands/llm/retry_mixin.py
, which will apply to both Openhands proper and Openhands resolver.Link of any specific issues this addresses
#5030
#5087