1use serde::{Deserialize, Serialize};
2use std::option::Option;
3
4use crate::impl_builder_methods;
5use crate::v1::common;
6
7#[derive(Debug, Serialize, Clone)]
8pub struct EditRequest {
9 pub model: String,
10 #[serde(skip_serializing_if = "Option::is_none")]
11 pub input: Option<String>,
12 pub instruction: String,
13 #[serde(skip_serializing_if = "Option::is_none")]
14 pub n: Option<i32>,
15 #[serde(skip_serializing_if = "Option::is_none")]
16 pub temperature: Option<f32>,
17 #[serde(skip_serializing_if = "Option::is_none")]
18 pub top_p: Option<f32>,
19}
20
21impl EditRequest {
22 pub fn new(model: String, instruction: String) -> Self {
23 Self {
24 model,
25 instruction,
26 input: None,
27 n: None,
28 temperature: None,
29 top_p: None,
30 }
31 }
32}
33
34impl_builder_methods!(
35 EditRequest,
36 input: String,
37 n: i32,
38 temperature: f32,
39 top_p: f32
40);
41
42#[derive(Debug, Deserialize, Serialize)]
43pub struct EditChoice {
44 pub text: String,
45 pub index: i32,
46}
47
48#[derive(Debug, Deserialize, Serialize)]
49pub struct EditResponse {
50 pub object: String,
51 pub created: i64,
52 pub usage: common::Usage,
53 pub choices: Vec<EditChoice>,
54}