Fixes #184: JSON parsing issue when async streaming#216
Merged
athyuttamre merged 1 commit intomainfrom Feb 7, 2023
Merged
Conversation
0ed54a6 to
28c97f0
Compare
28c97f0 to
54c38e6
Compare
Contributor
|
We went back and forth on this that tbh I've lost sense of what the right fix for this is :) We moved to using Reading the docs your change seems correct to me but since we've had issues in the past make sure that what was raised in #171 doesn't happen again after this PR. |
Author
|
I ran the previously added tests. I think I saw those issues myself too and no longer see them. Fingers crossed! |
davedittrich
pushed a commit
to davedittrich/openai-python
that referenced
this pull request
Nov 14, 2023
cgayapr
pushed a commit
to cgayapr/openai-python
that referenced
this pull request
Dec 14, 2024
This file contains hidden or 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
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.
I was able to reproduce #184 where sometimes calling
Completion.acreate(stream=True)would result in a JSON parsing issue.This was happening because our code was trying to parse incomplete JSON objects. It was receiving chunks that looked like this (notice the incomplete line at the end):
It looks like we were using the wrong function from
aiohttpto parse streaming bodies. Instead ofrbody.iter_chunks()we should be usingasync for line in rbodyinstead. See docs here: https://docs.aiohttp.org/en/stable/streams.html#asynchronous-iteration-support.This change immediately fixed the issue in my code.