-
Notifications
You must be signed in to change notification settings - Fork 66
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
Add AsyncOpenAI
and update OpenAILLM
accordingly
#381
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
`pytest-asyncio` is required to run `asyncio` methods within `pytest`, and `nest-asyncio` to allow nested event loops, otherwise `asyncio.run` calls will fail
plaguss
approved these changes
Mar 5, 2024
Needs to be placed within each test i.e. `Task`, `LLM`, ...instead of all of those combined within the same file, which was done initially as the first approach, but now needs to be properly done.
gabrielmbmb
reviewed
Mar 5, 2024
gabrielmbmb
approved these changes
Mar 5, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR adds
AsyncLLM
adding a new abstract method to implement in its subclasses namedagenerate
that expects a single input instead of a list of inputs in order to be able to parallelize the requests to the async-compatibleLLM
subclasses i.e.OpenAILLM
. Also thegenerate
method is implemented withinAsyncLLM
so that the logic is handled already, meaning that only theasync agenerate
needs to be implemented for each subclass.Besides that, this PR updates the
OpenAILLM
to useAsyncOpenAI
instead of the synchronousOpenAI
client.Finally, some docstrings have been included to both
AsyncLLM
andOpenAILLM
, as well as unit tests forOpenAILLM
.Closes #380
Update
Additionally, this PR also solves a bug with the
field_validator
ofOpenAILLM.api_key
, read more about it at https://docs.pydantic.dev/latest/concepts/validators/#validation-of-default-values. And this PR also fixes theGlobalStep
since it was inheriting from_Step
instead ofStep
, so it was breaking.