#![deprecated = "Use the chat api instead"]
use serde::{Deserialize, Serialize};
#[derive(Serialize, Debug, Clone)]
pub struct EditArguments {
pub model: String,
pub input: Option<String>,
pub instruction: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub n: Option<u32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub temperature: Option<f32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub top_p: Option<f32>,
}
impl EditArguments {
pub fn new(model: impl AsRef<str>, input: String, instruction: String) -> EditArguments {
EditArguments {
model: model.as_ref().to_owned(),
input: Some(input),
instruction: instruction,
n: None,
temperature: None,
top_p: None,
}
}
}
#[derive(Deserialize, Debug, Clone)]
pub struct EditResponse {
pub created: u32,
pub choices: Vec<Choice>,
pub usage: Usage,
}
impl std::fmt::Display for EditResponse {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}", self.choices[0].text)?;
Ok(())
}
}
#[derive(Deserialize, Debug, Clone)]
pub struct Choice {
pub text: String,
pub index: u32,
}
#[derive(Deserialize, Debug, Clone)]
pub struct Usage {
pub prompt_tokens: u32,
pub completion_tokens: u32,
pub total_tokens: u32,
}