Implementation:Openai Openai node Files Create
| Knowledge Sources | |
|---|---|
| Domains | Fine_Tuning, Data_Preparation |
| Last Updated | 2026-02-15 00:00 GMT |
Overview
Concrete tool for uploading files to the OpenAI platform provided by the openai-node SDK.
Description
The Files.create() method uploads a file via multipart form POST to the /files endpoint. It accepts an Uploadable (File, Response, ReadStream, or BlobLike) with a purpose string. For fine-tuning, the purpose must be fine-tune. The SDK's internal multipartFormRequestOptions handles encoding the file as multipart form data across different runtime environments.
Usage
Use this method to upload JSONL training files before creating a fine-tuning job. Also used for uploading files for Assistants (purpose: 'assistants' ) and batch processing (purpose: 'batch' ).
Code Reference
Source Location
- Repository: openai-node
- File: src/resources/files.ts
- Lines: L37-39
Signature
class Files extends APIResource {
create(
body: FileCreateParams,
options?: RequestOptions,
): APIPromise<FileObject>;
}
interface FileCreateParams {
file: Uploadable;
purpose: FilePurpose; // 'fine-tune' | 'assistants' | 'batch' | ...
expires_after?: ExpiresAfter;
}
Import
import OpenAI, { toFile } from 'openai';
// Access via: client.files.create(...)
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| file | Uploadable | Yes | File to upload (File, ReadStream, Response, Blob) |
| purpose | FilePurpose | Yes | File purpose ('fine-tune' for training data) |
| expires_after | ExpiresAfter | No | Optional expiration policy |
Outputs
| Name | Type | Description |
|---|---|---|
| fileObject | FileObject | Uploaded file metadata with id, filename, bytes, purpose, status, created_at |
Usage Examples
Upload Training File (Node.js)
import OpenAI from 'openai';
import fs from 'fs';
const client = new OpenAI();
const file = await client.files.create({
file: fs.createReadStream('training_data.jsonl'),
purpose: 'fine-tune',
});
console.log('File ID:', file.id);
console.log('Status:', file.status);
Upload with toFile Helper
import OpenAI, { toFile } from 'openai';
const client = new OpenAI();
// From a buffer or blob
const file = await client.files.create({
file: await toFile(Buffer.from('...jsonl content...'), 'training.jsonl'),
purpose: 'fine-tune',
});