diff --git a/crates/cloud_llm_client/src/cloud_llm_client.rs b/crates/cloud_llm_client/src/cloud_llm_client.rs index 12ea6be1f332960f4db7e9a7d67b7b3b926d905f..24923a318441afeaa2521064b4f433ab9ee1e55f 100644 --- a/crates/cloud_llm_client/src/cloud_llm_client.rs +++ b/crates/cloud_llm_client/src/cloud_llm_client.rs @@ -321,8 +321,8 @@ pub struct LanguageModel { #[derive(Debug, Serialize, Deserialize)] pub struct ListModelsResponse { pub models: Vec, - pub default_model: LanguageModelId, - pub default_fast_model: LanguageModelId, + pub default_model: Option, + pub default_fast_model: Option, pub recommended_models: Vec, } diff --git a/crates/language_models/src/provider/cloud.rs b/crates/language_models/src/provider/cloud.rs index 6393117185e9104bec77f14fe334e94bb18679db..24a4ba6cc260a91de170bb665c86756c8d7a25ca 100644 --- a/crates/language_models/src/provider/cloud.rs +++ b/crates/language_models/src/provider/cloud.rs @@ -215,11 +215,21 @@ impl State { self.default_model = models .iter() - .find(|model| model.id == response.default_model) + .find(|model| { + response + .default_model + .as_ref() + .is_some_and(|default_model_id| &model.id == default_model_id) + }) .cloned(); self.default_fast_model = models .iter() - .find(|model| model.id == response.default_fast_model) + .find(|model| { + response + .default_fast_model + .as_ref() + .is_some_and(|default_fast_model_id| &model.id == default_fast_model_id) + }) .cloned(); self.recommended_models = response .recommended_models