diff options
| author | sigoden <sigoden@gmail.com> | 2025-01-22 20:51:10 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-01-22 20:51:10 +0800 |
| commit | e0417e8d5bebe25476aaafa22a9ee23d9bd61457 (patch) | |
| tree | 8edcd3aa9bcd1b012a3a429ad6240e6186caef36 /src/client/model.rs | |
| parent | df4440a2a049d26c61a540d3254cd885345fbd6c (diff) | |
| download | aichat-e0417e8d5bebe25476aaafa22a9ee23d9bd61457.tar.gz | |
feat: add `--sync-models` cli option (#1114)
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>, } |
