Use httr2::req_perform_stream(round = "line")
#65
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.
closes #63
This uses
httr2::req_perform_stream_lines()
from r-lib/httr2#437 so that the data from open ai is dealt with line by line instead of some number of bytes.This PR is meant more as a conversation aid for the
httr2
PR.If
httr2
actually hadhttr2::req_perform_stream_lines()
or something serving the same purpose: consume stream line by line, then I believe some of the logic aroundch_env$stream$raw
could be improved, because we would know that we get completedata: {json}
lines, and soopenai_stream_parse()
etc ... could be simplified.Compared to #64 which has to do tricks with the bytes buffer, this feels much nicer.
So now we can stream the
golem
poem, cc @ColinFay 🫣Screen.Recording.2024-02-08.at.11.58.50.mov