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