@@ -263,6 +263,74 @@ OpenAIClient client = OpenAIOkHttpClient.builder()
263263 .build();
264264```
265265
266+ ## File uploads
267+
268+ The SDK defines methods that accept files.
269+
270+ To upload a file, pass a [ ` Path ` ] ( https://docs.oracle.com/javase/8/docs/api/java/nio/file/Path.html ) :
271+
272+ ``` java
273+ import com.openai.models.FileCreateParams ;
274+ import com.openai.models.FileObject ;
275+ import com.openai.models.FilePurpose ;
276+ import java.nio.file.Paths ;
277+
278+ FileCreateParams params = FileCreateParams . builder()
279+ .purpose(FilePurpose . FINE_TUNE )
280+ .file(Paths . get(" input.jsonl" ))
281+ .build();
282+ FileObject fileObject = client. files(). create(params);
283+ ```
284+
285+ Or an arbitrary [ ` InputStream ` ] ( https://docs.oracle.com/javase/8/docs/api/java/io/InputStream.html ) :
286+
287+ ``` java
288+ import com.openai.models.FileCreateParams ;
289+ import com.openai.models.FileObject ;
290+ import com.openai.models.FilePurpose ;
291+ import java.net.URL ;
292+
293+ FileCreateParams params = FileCreateParams . builder()
294+ .purpose(FilePurpose . FINE_TUNE )
295+ .file(new URL (" https://example.com" ). openStream())
296+ .build();
297+ FileObject fileObject = client. files(). create(params);
298+ ```
299+
300+ Or a ` byte[] ` array:
301+
302+ ``` java
303+ import com.openai.models.FileCreateParams ;
304+ import com.openai.models.FileObject ;
305+ import com.openai.models.FilePurpose ;
306+
307+ FileCreateParams params = FileCreateParams . builder()
308+ .purpose(FilePurpose . FINE_TUNE )
309+ .file(" content" . getBytes())
310+ .build();
311+ FileObject fileObject = client. files(). create(params);
312+ ```
313+
314+ Note that when passing a non-` Path ` its filename is unknown so it will not be included in the request. To manually set a filename, pass a ` MultipartField ` :
315+
316+ ``` java
317+ import com.openai.core.MultipartField ;
318+ import com.openai.models.FileCreateParams ;
319+ import com.openai.models.FileObject ;
320+ import com.openai.models.FilePurpose ;
321+ import java.io.InputStream ;
322+ import java.net.URL ;
323+
324+ FileCreateParams params = FileCreateParams . builder()
325+ .purpose(FilePurpose . FINE_TUNE )
326+ .file(MultipartField . < InputStream > builder()
327+ .value(new URL (" https://example.com" ). openStream())
328+ .filename(" input.jsonl" )
329+ .build())
330+ .build();
331+ FileObject fileObject = client. files(). create(params);
332+ ```
333+
266334## Binary responses
267335
268336The SDK defines methods that return binary responses, which are used for API responses that shouldn't necessarily be parsed, like non-JSON data.
0 commit comments