Module files

Source
Expand description

Upload, download, list, and delete files in openapi platform. Usually used for fine-tuning files.

See the Files API for OpenAI for more information.

§Examples

All examples and tests require the OPENAI_KEY environment variable be set with your personal openai platform API key.

Upload a new file. Reference API

use openai::files::File;
use openai::ApiResponseOrError;
use dotenvy::dotenv;
use std::env;
use openai::set_key;

#[tokio::main]
async fn main() -> ApiResponseOrError<()> {
    dotenv().ok();
    set_key(env::var("OPENAI_KEY").unwrap());
    let uploaded_file = File::builder()
        .file_name("test_data/file_upload_test1.jsonl") // local file path to upload.
        .purpose("fine-tune")
        .create()
        .await?;
    assert_eq!(uploaded_file.filename, "file_upload_test1.jsonl");
    Ok(())
}

List files. Reference API

use openai::files::Files;
use openai::ApiResponseOrError;
use dotenvy::dotenv;
use std::env;
use openai::set_key;

#[tokio::main]
async fn main() -> ApiResponseOrError<()> {
    dotenv().ok();
    set_key(env::var("OPENAI_KEY").unwrap());
    let openai_files = Files::list().await?;
    let file_count = openai_files.len();
    println!("Listing {} files", file_count);
    for openai_file in openai_files.into_iter() {
        println!("  id: {}, file: {}, size: {}", openai_file.id, openai_file.filename, openai_file.bytes)
    }
    Ok(())
}

Retrieve a file (json metadata only). Reference API

use openai::files::File;
use openai::ApiResponseOrError;
use dotenvy::dotenv;
use std::env;
use openai::set_key;

#[tokio::main]
async fn main() -> ApiResponseOrError<()> {
    dotenv().ok();
    set_key(env::var("OPENAI_KEY").unwrap());
    let file_id = "file-XjGxS3KTG0uNmNOK362iJua3"; // Use a real file id.
    let file = File::get(file_id).await?;
    println!("id: {}, file: {}, size: {}", file.id, file.filename, file.bytes);
    Ok(())
}

Download to a local file. Reference API

use openai::files::File;
use openai::ApiResponseOrError;
use dotenvy::dotenv;
use std::env;
use openai::set_key;

#[tokio::main]
async fn main() -> ApiResponseOrError<()> {
    dotenv().ok();
    set_key(env::var("OPENAI_KEY").unwrap());
    let test_file = "test_file.jsonl";
    let file_id = "file-XjGxS3KTG0uNmNOK362iJua3"; // Use a real file id.
    File::download_content_to_file(file_id, test_file).await?;
    Ok(())
}

Delete a file. Reference API

use openai::files::File;
use openai::ApiResponseOrError;
use dotenvy::dotenv;
use std::env;
use openai::set_key;

#[tokio::main]
async fn main() -> ApiResponseOrError<()> {
    dotenv().ok();
    set_key(env::var("OPENAI_KEY").unwrap());
    let file_id = "file-XjGxS3KTG0uNmNOK362iJua3"; // Use a real file id.
    File::delete(file_id).await?;
    Ok(())
}

For more examples see the files tests.

Structs§

DeletedFile
File
Upload, download and delete a file from the openai platform.
FileUploadBuilder
Builder for FileUploadRequest.
FileUploadRequest
Files
List files in the openai platform.

Enums§

FileUploadBuilderError
Error type for FileUploadBuilder