diff options
Diffstat (limited to 'src/client/model.rs')
| -rw-r--r-- | src/client/model.rs | 23 |
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>, } |
