openai_interface/files/
mod.rs1pub mod create;
11pub mod delete;
12pub mod list;
13pub mod retrieve;
14
15use std::str::FromStr;
16
17use serde::Deserialize;
18
19use crate::errors::OapiError;
20
21#[derive(Debug, Deserialize, Clone, PartialEq, Eq)]
22pub struct FileObject {
23 pub id: String,
25 pub bytes: usize,
27 pub created_at: usize,
29 pub filename: String,
31 pub object: String,
33 pub purpose: FilePurpose,
37 pub status: Option<FileStatus>,
40 pub expires_at: Option<usize>,
42 pub status_details: Option<String>,
45}
46
47#[derive(Debug, Deserialize, Clone, PartialEq, Eq)]
48#[serde(rename_all = "lowercase")]
49pub enum FileStatus {
50 Uploaded,
51 Processed,
52 Error,
53}
54
55#[derive(Debug, Deserialize, Clone, PartialEq, Eq)]
56pub enum FilePurpose {
57 #[serde(rename = "assistant")]
58 Assistant,
59 #[serde(rename = "assistants_output")]
60 AssistantsOutput,
61 #[serde(rename = "batch")]
62 Batch,
63 #[serde(rename = "batch_output")]
64 BatchOutput,
65 #[serde(rename = "fine-tune")]
66 FineTune,
67 #[serde(rename = "fine-tune-results")]
68 FineTuneResults,
69 #[serde(rename = "vision")]
70 Vision,
71 #[serde(rename = "user_data")]
72 UserData,
73 #[serde(untagged)]
74 Other(String),
75}
76
77impl FromStr for FileObject {
78 type Err = OapiError;
79
80 fn from_str(s: &str) -> Result<Self, Self::Err> {
81 let parse_result: Result<Self, _> =
82 serde_json::from_str(s).map_err(|e| OapiError::DeserializationError(e.to_string()));
83 parse_result
84 }
85}