Skip to content

Commit 96e4969

Browse files
docs: document file uploads in readme (#279)
1 parent 3fda365 commit 96e4969

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

README.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

268336
The 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

Comments
 (0)