summaryrefslogtreecommitdiffstats
path: root/src/client/model.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/model.rs')
-rw-r--r--src/client/model.rs23
1 files changed, 15 insertions, 8 deletions
diff --git a/src/client/model.rs b/src/client/model.rs
index 4b0457f..b562705 100644
--- a/src/client/model.rs
+++ b/src/client/model.rs
@@ -277,26 +277,33 @@ pub struct ModelData {
pub name: String,
#[serde(default = "default_model_type", rename = "type")]
pub model_type: String,
+ #[serde(skip_serializing_if = "Option::is_none")]
pub max_input_tokens: Option<usize>,
+ #[serde(skip_serializing_if = "Option::is_none")]
pub input_price: Option<f64>,
+ #[serde(skip_serializing_if = "Option::is_none")]
pub output_price: Option<f64>,
// chat-only properties
+ #[serde(skip_serializing_if = "Option::is_none")]
pub max_output_tokens: Option<isize>,
- #[serde(default)]
+ #[serde(default, skip_serializing_if = "std::ops::Not::not")]
pub require_max_tokens: bool,
- #[serde(default)]
+ #[serde(default, skip_serializing_if = "std::ops::Not::not")]
pub supports_vision: bool,
- #[serde(default)]
+ #[serde(default, skip_serializing_if = "std::ops::Not::not")]
pub supports_function_calling: bool,
- #[serde(default)]
+ #[serde(default, skip_serializing_if = "std::ops::Not::not")]
no_stream: bool,
- #[serde(default)]
+ #[serde(default, skip_serializing_if = "std::ops::Not::not")]
no_system_message: bool,
// embedding-only properties
+ #[serde(skip_serializing_if = "Option::is_none")]
pub max_tokens_per_chunk: Option<usize>,
+ #[serde(skip_serializing_if = "Option::is_none")]
pub default_chunk_size: Option<usize>,
+ #[serde(skip_serializing_if = "Option::is_none")]
pub max_batch_size: Option<usize>,
}
@@ -310,9 +317,9 @@ impl ModelData {
}
}
-#[derive(Debug, Clone, Deserialize)]
-pub struct PredefinedModels {
- pub platform: String,
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct ProviderModels {
+ pub provider: String,
pub models: Vec<ModelData>,
}