mistral-openapi-client 0.1.0

Our Chat Completion and Embeddings APIs specification. Create your account on [La Plateforme](https://console.mistral.ai) to get access and read the [docs](https://docs.mistral.ai) to learn how to use it.
Documentation
/*
 * Mistral AI API
 *
 * Our Chat Completion and Embeddings APIs specification. Create your account on [La Plateforme](https://console.mistral.ai) to get access and read the [docs](https://docs.mistral.ai) to learn how to use it.
 *
 * The version of the OpenAPI document: 1.0.0
 * 
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

/// CompletionArgs : White-listed arguments from the completion API
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CompletionArgs {
    #[serde(rename = "stop", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub stop: Option<Option<Box<models::CompletionArgsStop>>>,
    #[serde(rename = "presence_penalty", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub presence_penalty: Option<Option<f64>>,
    #[serde(rename = "frequency_penalty", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub frequency_penalty: Option<Option<f64>>,
    #[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", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub top_p: Option<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 = "random_seed", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub random_seed: Option<Option<i32>>,
    #[serde(rename = "prediction", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub prediction: Option<Option<Box<models::Prediction>>>,
    #[serde(rename = "response_format", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
    pub response_format: Option<Option<Box<models::ResponseFormat>>>,
    #[serde(rename = "tool_choice", skip_serializing_if = "Option::is_none")]
    pub tool_choice: Option<models::ToolChoiceEnum>,
}

impl CompletionArgs {
    /// White-listed arguments from the completion API
    pub fn new() -> CompletionArgs {
        CompletionArgs {
            stop: None,
            presence_penalty: None,
            frequency_penalty: None,
            temperature: None,
            top_p: None,
            max_tokens: None,
            random_seed: None,
            prediction: None,
            response_format: None,
            tool_choice: None,
        }
    }
}