use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct FimCompletionRequest {
#[serde(rename = "model")]
pub model: String,
#[serde(rename = "temperature", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub temperature: Option<Option<f64>>,
#[serde(rename = "top_p", skip_serializing_if = "Option::is_none")]
pub top_p: Option<f64>,
#[serde(rename = "max_tokens", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub max_tokens: Option<Option<i32>>,
#[serde(rename = "stream", skip_serializing_if = "Option::is_none")]
pub stream: Option<bool>,
#[serde(rename = "stop", skip_serializing_if = "Option::is_none")]
pub stop: Option<Box<models::Stop>>,
#[serde(rename = "random_seed", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub random_seed: Option<Option<i32>>,
#[serde(rename = "metadata", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub metadata: Option<Option<std::collections::HashMap<String, serde_json::Value>>>,
#[serde(rename = "prompt")]
pub prompt: String,
#[serde(rename = "suffix", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub suffix: Option<Option<String>>,
#[serde(rename = "min_tokens", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub min_tokens: Option<Option<i32>>,
}
impl FimCompletionRequest {
pub fn new(model: String, prompt: String) -> FimCompletionRequest {
FimCompletionRequest {
model,
temperature: None,
top_p: None,
max_tokens: None,
stream: None,
stop: None,
random_seed: None,
metadata: None,
prompt,
suffix: None,
min_tokens: None,
}
}
}