Skip to content

Commit 0772e6e

Browse files
feat(client): support file upload requests
1 parent 00b49ae commit 0772e6e

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

src/openai/_base_client.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -534,7 +534,10 @@ def _build_request(
534534
is_body_allowed = options.method.lower() != "get"
535535

536536
if is_body_allowed:
537-
kwargs["json"] = json_data if is_given(json_data) else None
537+
if isinstance(json_data, bytes):
538+
kwargs["content"] = json_data
539+
else:
540+
kwargs["json"] = json_data if is_given(json_data) else None
538541
kwargs["files"] = files
539542
else:
540543
headers.pop("Content-Type", None)

src/openai/_files.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,12 @@ def _transform_file(file: FileTypes) -> HttpxFileTypes:
6969
return file
7070

7171
if is_tuple_t(file):
72-
return (file[0], _read_file_content(file[1]), *file[2:])
72+
return (file[0], read_file_content(file[1]), *file[2:])
7373

7474
raise TypeError(f"Expected file types input to be a FileContent type or to be a tuple")
7575

7676

77-
def _read_file_content(file: FileContent) -> HttpxFileContent:
77+
def read_file_content(file: FileContent) -> HttpxFileContent:
7878
if isinstance(file, os.PathLike):
7979
return pathlib.Path(file).read_bytes()
8080
return file
@@ -111,12 +111,12 @@ async def _async_transform_file(file: FileTypes) -> HttpxFileTypes:
111111
return file
112112

113113
if is_tuple_t(file):
114-
return (file[0], await _async_read_file_content(file[1]), *file[2:])
114+
return (file[0], await async_read_file_content(file[1]), *file[2:])
115115

116116
raise TypeError(f"Expected file types input to be a FileContent type or to be a tuple")
117117

118118

119-
async def _async_read_file_content(file: FileContent) -> HttpxFileContent:
119+
async def async_read_file_content(file: FileContent) -> HttpxFileContent:
120120
if isinstance(file, os.PathLike):
121121
return await anyio.Path(file).read_bytes()
122122

0 commit comments

Comments
 (0)