correct thinking modes for each model

This commit is contained in:
Georg Bauer
2026-09-01 21:03:13 +02:00
parent ee515ee824
commit d40e86e5ef
11 changed files with 338 additions and 127 deletions
+14 -8
View File
@@ -196,6 +196,7 @@ impl PreferenceDraft {
}
fn select_generation(&mut self, model: ModelChoice, mode: ReasoningMode) -> Result<(), String> {
model.validate_reasoning_mode(mode)?;
self.store_generation()?;
self.load_generation(model, mode);
Ok(())
@@ -245,14 +246,18 @@ impl PreferenceDraft {
let profile = self
.model_profiles
.entry(self.acceleration_model)
.or_default();
.or_insert_with(|| ModelPreferences::defaults_for(self.acceleration_model));
profile.speculative = speculative;
profile.ssd = ssd;
Ok(())
}
fn load_acceleration(&mut self, model: ModelChoice) {
let profile = self.model_profiles.get(&model).cloned().unwrap_or_default();
let profile = self
.model_profiles
.get(&model)
.cloned()
.unwrap_or_else(|| ModelPreferences::defaults_for(model));
let speculative = profile.speculative;
let ssd = profile.ssd;
self.acceleration_model = model;
@@ -301,9 +306,10 @@ impl PreferenceDraft {
}
pub(super) fn reasoning_mode_for(&self, model: ModelChoice) -> ReasoningMode {
self.model_profiles
.get(&model)
.map_or(ReasoningMode::default(), |profile| profile.reasoning_mode)
self.model_profiles.get(&model).map_or_else(
|| model.default_reasoning_mode(),
|profile| profile.reasoning_mode,
)
}
pub(super) fn runtime(&self) -> Result<RuntimePreferences, String> {
@@ -518,7 +524,7 @@ impl App {
self.preference_draft
.model_profiles
.entry(self.preference_draft.model)
.or_default()
.or_insert_with(|| ModelPreferences::defaults_for(self.preference_draft.model))
.reasoning_mode = self.preference_draft.default_reasoning_mode;
let config = Config {
model: self.preference_draft.model,
@@ -684,7 +690,7 @@ impl App {
self.preference_draft
.model_profiles
.entry(self.preference_draft.model)
.or_default()
.or_insert_with(|| ModelPreferences::defaults_for(self.preference_draft.model))
.reasoning_mode = mode;
self.preference_error = None;
}
@@ -1016,7 +1022,7 @@ mod tests {
assert_eq!(draft.context_tokens, "32768");
draft.context_tokens = "456".into();
draft
.select_generation(ModelChoice::DeepSeekV4Flash0731, ReasoningMode::High)
.select_generation(ModelChoice::DeepSeekV4Flash0731, ReasoningMode::Low)
.unwrap();
assert_eq!(draft.context_tokens, "123");