From e0417e8d5bebe25476aaafa22a9ee23d9bd61457 Mon Sep 17 00:00:00 2001 From: sigoden Date: Wed, 22 Jan 2025 20:51:10 +0800 Subject: feat: add `--sync-models` cli option (#1114) --- src/client/model.rs | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'src/client/model.rs') 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, + #[serde(skip_serializing_if = "Option::is_none")] pub input_price: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub output_price: Option, // chat-only properties + #[serde(skip_serializing_if = "Option::is_none")] pub max_output_tokens: Option, - #[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, + #[serde(skip_serializing_if = "Option::is_none")] pub default_chunk_size: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub max_batch_size: Option, } @@ -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, } -- cgit v1.2.3