async_openai/types/
file.rs1use derive_builder::Builder;
2use serde::{Deserialize, Serialize};
3
4use crate::error::OpenAIError;
5
6use super::InputSource;
7
8#[derive(Debug, Default, Clone, PartialEq)]
9pub struct FileInput {
10 pub source: InputSource,
11}
12
13#[derive(Debug, Default, Clone, PartialEq)]
14pub enum FilePurpose {
15 Assistants,
16 Batch,
17 #[default]
18 FineTune,
19 Vision,
20}
21
22#[derive(Debug, Default, Clone, Builder, PartialEq)]
23#[builder(name = "CreateFileRequestArgs")]
24#[builder(pattern = "mutable")]
25#[builder(setter(into, strip_option), default)]
26#[builder(derive(Debug))]
27#[builder(build_fn(error = "OpenAIError"))]
28pub struct CreateFileRequest {
29 pub file: FileInput,
31
32 pub purpose: FilePurpose,
36}
37
38#[derive(Debug, Deserialize, Clone, PartialEq, Serialize)]
39pub struct ListFilesResponse {
40 pub object: String,
41 pub data: Vec<OpenAIFile>,
42}
43
44#[derive(Debug, Deserialize, Clone, PartialEq, Serialize)]
45pub struct DeleteFileResponse {
46 pub id: String,
47 pub object: String,
48 pub deleted: bool,
49}
50
51#[derive(Debug, Deserialize, Serialize, Clone, PartialEq)]
52pub enum OpenAIFilePurpose {
53 #[serde(rename = "assistants")]
54 Assistants,
55 #[serde(rename = "assistants_output")]
56 AssistantsOutput,
57 #[serde(rename = "batch")]
58 Batch,
59 #[serde(rename = "batch_output")]
60 BatchOutput,
61 #[serde(rename = "fine-tune")]
62 FineTune,
63 #[serde(rename = "fine-tune-results")]
64 FineTuneResults,
65 #[serde(rename = "vision")]
66 Vision,
67}
68
69#[derive(Debug, Deserialize, Serialize, Clone, PartialEq)]
71pub struct OpenAIFile {
72 pub id: String,
74 pub object: String,
76 pub bytes: u32,
78 pub created_at: u32,
80 pub filename: String,
82 pub purpose: OpenAIFilePurpose,
84 #[deprecated]
86 pub status: Option<String>,
87 #[deprecated]
89 pub status_details: Option<String>, }