Fix improper streaming in Azure Client #796
Closed
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.
Ensure streaming works in "real-time"
fix: Ensure streaming chunks are emitted individually to the client
Problem:
The previous implementation combined multiple chunks into a single response, causing all data to be sent to the client at once instead of streaming each chunk individually. This behavior was due to the use of
reduce
andconcatMapIterable
, which aggregated the data before emitting it.Solution:
reduce
andconcatMapIterable
, which were combining chunks into a single response.flatMap
on thewindow
to ensure each item within the window is processed and emitted individually.ChatCompletions
directly to maintain the streaming behavior, ensuring that each chunk is processed and passed downstream as soon as it is received.Changes:
reduce
call to avoid combining chunks.concatMapIterable
withflatMap
to process each chunk individually.windowUntil
logic to correctly handle function calls and stream each chunk separately.This change ensures that each chunk of data is streamed to the client individually, providing a smoother and more immediate streaming experience.
Tested: