Skip to content

chore: revert binary streaming change #875

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

Merged
merged 1 commit into from
Nov 23, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions examples/audio.py
Original file line number Diff line number Diff line change
@@ -13,10 +13,7 @@
def main() -> None:
# Create text-to-speech audio file
response = openai.audio.speech.create(
model="tts-1",
voice="alloy",
input="the quick brown fox jumped over the lazy dogs",
stream=True,
model="tts-1", voice="alloy", input="the quick brown fox jumped over the lazy dogs"
)

response.stream_to_file(speech_file_path)
8 changes: 2 additions & 6 deletions src/openai/_base_client.py
Original file line number Diff line number Diff line change
@@ -863,7 +863,7 @@ def _request(
self._prepare_request(request)

try:
response = self._client.send(request, auth=self.custom_auth, stream=stream or options.stream or False)
response = self._client.send(request, auth=self.custom_auth, stream=stream)
log.debug(
'HTTP Request: %s %s "%i %s"', request.method, request.url, response.status_code, response.reason_phrase
)
@@ -1304,7 +1304,7 @@ async def _request(
await self._prepare_request(request)

try:
response = await self._client.send(request, auth=self.custom_auth, stream=stream or options.stream or False)
response = await self._client.send(request, auth=self.custom_auth, stream=stream)
log.debug(
'HTTP Request: %s %s "%i %s"', request.method, request.url, response.status_code, response.reason_phrase
)
@@ -1541,7 +1541,6 @@ def make_request_options(
idempotency_key: str | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
post_parser: PostParser | NotGiven = NOT_GIVEN,
stream: bool | None = None,
) -> RequestOptions:
"""Create a dict of type RequestOptions without keys of NotGiven values."""
options: RequestOptions = {}
@@ -1563,9 +1562,6 @@ def make_request_options(
if idempotency_key is not None:
options["idempotency_key"] = idempotency_key

if stream is not None:
options["stream"] = stream

if is_given(post_parser):
# internal
options["post_parser"] = post_parser # type: ignore
2 changes: 0 additions & 2 deletions src/openai/_models.py
Original file line number Diff line number Diff line change
@@ -403,7 +403,6 @@ class FinalRequestOptionsInput(TypedDict, total=False):
params: Query
headers: Headers
max_retries: int
stream: bool | None
timeout: float | Timeout | None
files: HttpxRequestFiles | None
idempotency_key: str
@@ -421,7 +420,6 @@ class FinalRequestOptions(pydantic.BaseModel):
timeout: Union[float, Timeout, None, NotGiven] = NotGiven()
files: Union[HttpxRequestFiles, None] = None
idempotency_key: Union[str, None] = None
stream: Union[bool, None] = None
post_parser: Union[Callable[[Any], Any], NotGiven] = NotGiven()

# It should be noted that we cannot use `json` here as that would override
23 changes: 2 additions & 21 deletions src/openai/_types.py
Original file line number Diff line number Diff line change
@@ -130,16 +130,7 @@ def stream_to_file(
chunk_size: int | None = None,
) -> None:
"""
Stream the output to the given file. NOTE, requires passing `stream=True`
to the request for expected behavior, e.g.,
response = openai.audio.speech.create(
model="tts-1",
voice="alloy",
input="the quick brown fox jumped over the lazy dogs",
stream=True,
)
response.stream_to_file(speech_file_path)
Stream the output to the given file.
"""
pass

@@ -194,16 +185,7 @@ async def astream_to_file(
chunk_size: int | None = None,
) -> None:
"""
Stream the output to the given file. NOTE, requires passing `stream=True`
to the request for expected behavior, e.g.,
response = await openai.audio.speech.create(
model="tts-1",
voice="alloy",
input="the quick brown fox jumped over the lazy dogs",
stream=True,
)
response.stream_to_file(speech_file_path)
Stream the output to the given file.
"""
pass

@@ -275,7 +257,6 @@ async def aclose(self) -> None:
class RequestOptions(TypedDict, total=False):
headers: Headers
max_retries: int
stream: bool
timeout: float | Timeout | None
params: Query
extra_json: AnyMapping
20 changes: 2 additions & 18 deletions src/openai/resources/audio/speech.py
Original file line number Diff line number Diff line change
@@ -41,7 +41,6 @@ def create(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
stream: bool | None = None,
) -> HttpxBinaryResponseContent:
"""
Generates audio from the input text.
@@ -68,9 +67,6 @@ def create(
extra_body: Add additional JSON properties to the request
timeout: Override the client-level default timeout for this request, in seconds
stream: Whether or not the response content should be streamed (i.e. not read to
completion immediately), default False
"""
return self._post(
"/audio/speech",
@@ -85,11 +81,7 @@ def create(
speech_create_params.SpeechCreateParams,
),
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
extra_body=extra_body,
timeout=timeout,
stream=stream,
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
cast_to=HttpxBinaryResponseContent,
)
@@ -116,7 +108,6 @@ async def create(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
stream: bool | None = None,
) -> HttpxBinaryResponseContent:
"""
Generates audio from the input text.
@@ -143,9 +134,6 @@ async def create(
extra_body: Add additional JSON properties to the request
timeout: Override the client-level default timeout for this request, in seconds
stream: Whether or not the response content should be streamed (i.e. not read to
completion immediately), default False
"""
return await self._post(
"/audio/speech",
@@ -160,11 +148,7 @@ async def create(
speech_create_params.SpeechCreateParams,
),
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
extra_body=extra_body,
timeout=timeout,
stream=stream,
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
cast_to=HttpxBinaryResponseContent,
)
20 changes: 2 additions & 18 deletions src/openai/resources/files.py
Original file line number Diff line number Diff line change
@@ -212,7 +212,6 @@ def content(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
stream: bool | None = None,
) -> HttpxBinaryResponseContent:
"""
Returns the contents of the specified file.
@@ -225,18 +224,11 @@ def content(
extra_body: Add additional JSON properties to the request
timeout: Override the client-level default timeout for this request, in seconds
stream: Whether or not the response content should be streamed (i.e. not read to
completion immediately), default False
"""
return self._get(
f"/files/{file_id}/content",
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
extra_body=extra_body,
timeout=timeout,
stream=stream,
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
cast_to=HttpxBinaryResponseContent,
)
@@ -483,7 +475,6 @@ async def content(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
stream: bool | None = None,
) -> HttpxBinaryResponseContent:
"""
Returns the contents of the specified file.
@@ -496,18 +487,11 @@ async def content(
extra_body: Add additional JSON properties to the request
timeout: Override the client-level default timeout for this request, in seconds
stream: Whether or not the response content should be streamed (i.e. not read to
completion immediately), default False
"""
return await self._get(
f"/files/{file_id}/content",
options=make_request_options(
extra_headers=extra_headers,
extra_query=extra_query,
extra_body=extra_body,
timeout=timeout,
stream=stream,
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
cast_to=HttpxBinaryResponseContent,
)