openai_api_rs/v1/
fine_tuning.rs1use serde::{Deserialize, Serialize};
2
3use crate::impl_builder_methods;
4
5#[derive(Debug, Serialize, Clone)]
6pub struct CreateFineTuningJobRequest {
7 pub model: String,
8 pub training_file: String,
9 #[serde(skip_serializing_if = "Option::is_none")]
10 pub hyperparameters: Option<HyperParameters>,
11 #[serde(skip_serializing_if = "Option::is_none")]
12 pub suffix: Option<String>,
13 #[serde(skip_serializing_if = "Option::is_none")]
14 pub validation_file: Option<String>,
15}
16
17impl CreateFineTuningJobRequest {
18 pub fn new(model: String, training_file: String) -> Self {
19 Self {
20 model,
21 training_file,
22 hyperparameters: None,
23 suffix: None,
24 validation_file: None,
25 }
26 }
27}
28
29impl_builder_methods!(
30 CreateFineTuningJobRequest,
31 hyperparameters: HyperParameters,
32 suffix: String,
33 validation_file: String
34);
35
36#[derive(Debug, Serialize)]
37pub struct ListFineTuningJobsRequest {
38 #[serde(skip_serializing_if = "Option::is_none")]
40 pub after: Option<String>,
41 #[serde(skip_serializing_if = "Option::is_none")]
42 pub limit: Option<i64>,
43}
44
45impl ListFineTuningJobsRequest {
46 pub fn new(_fine_tune_id: String) -> Self {
47 Self {
48 after: None,
49 limit: None,
50 }
51 }
52}
53
54#[derive(Debug, Serialize)]
55pub struct ListFineTuningJobEventsRequest {
56 pub fine_tuning_job_id: String,
57 #[serde(skip_serializing_if = "Option::is_none")]
59 pub after: Option<String>,
60 #[serde(skip_serializing_if = "Option::is_none")]
61 pub limit: Option<i64>,
62}
63
64impl ListFineTuningJobEventsRequest {
65 pub fn new(fine_tuning_job_id: String) -> Self {
66 Self {
67 fine_tuning_job_id,
68 after: None,
69 limit: None,
70 }
71 }
72}
73
74#[derive(Debug, Serialize)]
75pub struct RetrieveFineTuningJobRequest {
76 pub fine_tuning_job_id: String,
77}
78
79impl RetrieveFineTuningJobRequest {
80 pub fn new(fine_tuning_job_id: String) -> Self {
81 Self { fine_tuning_job_id }
82 }
83}
84
85#[derive(Debug, Serialize)]
86pub struct CancelFineTuningJobRequest {
87 pub fine_tuning_job_id: String,
88}
89
90impl CancelFineTuningJobRequest {
91 pub fn new(fine_tuning_job_id: String) -> Self {
92 Self { fine_tuning_job_id }
93 }
94}
95
96#[derive(Debug, Deserialize, Serialize)]
97pub struct FineTuningPagination<T> {
98 pub object: String,
99 pub data: Vec<T>,
100 pub has_more: bool,
101}
102
103#[derive(Debug, Deserialize, Serialize)]
104pub struct FineTuningJobObject {
105 pub id: String,
106 pub created_at: i64,
107 pub error: Option<FineTuningJobError>,
108 pub fine_tuned_model: Option<String>,
109 pub finished_at: Option<String>,
110 pub hyperparameters: HyperParameters,
111 pub model: String,
112 pub object: String,
113 pub organization_id: String,
114 pub result_files: Vec<String>,
115 pub status: String,
116 pub trained_tokens: Option<i64>,
117 pub training_file: String,
118 pub validation_file: Option<String>,
119}
120
121#[derive(Debug, Deserialize, Serialize)]
122pub struct FineTuningJobError {
123 pub code: String,
124 pub message: String,
125 pub param: Option<String>,
126}
127
128#[derive(Debug, Deserialize, Serialize)]
129pub struct FineTuningJobEvent {
130 pub id: String,
131 pub created_at: i64,
132 pub level: String,
133 pub message: String,
134 pub object: String,
135}
136
137#[derive(Clone, Debug, Deserialize, Serialize)]
138pub struct HyperParameters {
139 #[serde(skip_serializing_if = "Option::is_none")]
140 pub batch_size: Option<String>,
141 #[serde(skip_serializing_if = "Option::is_none")]
142 pub learning_rate_multiplier: Option<String>,
143 #[serde(skip_serializing_if = "Option::is_none")]
144 pub n_epochs: Option<String>,
145}