Fix: "UserWarning: ... sessions are still open..." when streaming with AsyncInferenceClient
#3252
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.
AsyncInferenceClientcreates anaiohttp.ClientSessioneach time it makes a request. when streaming, the session is only closed after the async generator that yields the data finishes iterating:if the user stops iteration as soon as they see the
[DONE]event (see_async_stream_chat_completion_responseand_format_chat_completion_stream_output), theawait client.close()line is never executed. later, when the client object is garbage collected, we get this warning:the fix simply wraps the iteration in a try/finally block, regardless of how or when the caller stops consuming the stream, the finally clause guarantees the underlying session s closed.
repro: