pub mod jobs;
pub mod models;
#[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum FineTuningJobStatus {
ValidatingFiles,
Queued,
Running,
Succeeded,
Failed,
Cancelled,
}
#[derive(Debug, Clone, serde::Deserialize)]
pub struct FineTuneMetrics {
#[serde(default)]
pub step: Option<u64>,
#[serde(default)]
pub train_loss: Option<serde_json::Value>,
#[serde(default)]
pub train_mean_token_accuracy: Option<serde_json::Value>,
#[serde(default)]
pub valid_loss: Option<serde_json::Value>,
#[serde(default)]
pub validation_mean_token_accuracy: Option<serde_json::Value>,
#[serde(default)]
pub full_valid_loss: Option<serde_json::Value>,
#[serde(default)]
pub full_valid_mean_token_accuracy: Option<serde_json::Value>,
}
#[derive(Debug, Clone, serde::Deserialize)]
pub struct Hyperparameters {
#[serde(default)]
pub n_epochs: Option<serde_json::Value>,
#[serde(default)]
pub batch_size: Option<serde_json::Value>,
#[serde(default)]
pub learning_rate_multiplier: Option<serde_json::Value>,
}
#[derive(Debug, Clone, serde::Deserialize)]
pub struct FineTuningJob {
pub id: String,
#[serde(default)]
pub object: Option<String>,
pub created_at: u64,
#[serde(default)]
pub finished_at: Option<u64>,
pub model: String,
#[serde(default)]
pub fine_tuned_model: Option<String>,
#[serde(default)]
pub organization_id: Option<String>,
pub status: FineTuningJobStatus,
pub training_file: String,
#[serde(default)]
pub validation_file: Option<String>,
#[serde(default)]
pub hyperparameters: Option<Hyperparameters>,
#[serde(default)]
pub seed: Option<u64>,
#[serde(default)]
pub suffix: Option<String>,
#[serde(default)]
pub integrations: Option<serde_json::Value>,
#[serde(default)]
pub result_files: Vec<String>,
#[serde(default)]
pub metrics: Option<FineTuneMetrics>,
#[serde(default)]
pub user_provided_suffix: Option<bool>,
#[serde(default)]
pub error: Option<crate::errors::ApiError>,
#[serde(default)]
pub metadata: Option<std::collections::HashMap<String, String>>,
#[serde(default)]
pub method: Option<serde_json::Value>,
#[serde(default)]
pub estimated_finish: Option<u64>,
#[serde(default)]
pub trained_tokens: Option<u64>,
#[serde(rename = "estimated_finish_minutes")]
#[serde(default)]
pub estimated_finish_minutes: Option<u64>,
}
crate::impl_from_str!(FineTuningJob);