Honor ChatGPT model maximum context windows
This commit is contained in:
+9
-1
@@ -2742,7 +2742,15 @@ fn openai_model_context_window(
|
||||
is_configurable: max_context_size > default_context_size,
|
||||
min: default_context_size,
|
||||
max: max_context_size,
|
||||
default_max: default_context_size,
|
||||
// ChatGPT's catalog exposes `context_window` as the effective window
|
||||
// and `max_context_window` as the model's actual maximum. Use the
|
||||
// latter as the default so model refreshes do not reset the profile
|
||||
// to the smaller effective window (for example, 272k).
|
||||
default_max: if provider_kind == OpenAIProviderKind::ChatGPTSubscription {
|
||||
max_context_size
|
||||
} else {
|
||||
default_context_size
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -813,7 +813,7 @@ fn chatgpt_codex_models_parse_visible_catalog_entries() {
|
||||
);
|
||||
assert!(configurable.is_configurable);
|
||||
assert_eq!(configurable.min, 258_400);
|
||||
assert_eq!(configurable.default_max, 258_400);
|
||||
assert_eq!(configurable.default_max, 828_400);
|
||||
assert_eq!(configurable.max, 828_400);
|
||||
|
||||
let fixed =
|
||||
@@ -829,6 +829,8 @@ fn chatgpt_catalog_merge_drops_stale_models_but_preserves_overrides() {
|
||||
let mut existing = openai_model("gpt-5.6-sol");
|
||||
existing.enabled = false;
|
||||
existing.use_rig = false;
|
||||
existing.context_size = 272_000;
|
||||
existing.max_input_tokens = Some(272_000);
|
||||
existing.capability_overrides.insert(
|
||||
"vision".to_string(),
|
||||
crate::settings::ModelCapabilityOverride::Unsupported,
|
||||
@@ -839,11 +841,15 @@ fn chatgpt_catalog_merge_drops_stale_models_but_preserves_overrides() {
|
||||
discovered.display_name = "GPT-5.6-Sol".to_string();
|
||||
discovered.vision_supported = true;
|
||||
discovered.use_rig = true;
|
||||
discovered.context_size = 828_400;
|
||||
discovered.max_input_tokens = Some(258_400);
|
||||
|
||||
let merged = merge_discovered_chatgpt_subscription_models(&[existing, stale], vec![discovered]);
|
||||
|
||||
assert_eq!(merged.len(), 1);
|
||||
assert_eq!(merged[0].model_id, "gpt-5.6-sol");
|
||||
assert_eq!(merged[0].context_size, 828_400);
|
||||
assert_eq!(merged[0].max_input_tokens, Some(258_400));
|
||||
assert!(!merged[0].enabled);
|
||||
assert!(!merged[0].use_rig);
|
||||
assert_eq!(
|
||||
|
||||
Reference in New Issue
Block a user