https://github.com/user-attachments/assets/50198ee8-5915-47a3-bb71-69af65add1ef Building up on #2431 #2428
55 lines
2.0 KiB
Rust
55 lines
2.0 KiB
Rust
use codex_core::protocol_config_types::ReasoningEffort;
|
|
|
|
/// A simple preset pairing a model slug with a reasoning effort.
|
|
#[derive(Debug, Clone, Copy)]
|
|
pub struct ModelPreset {
|
|
/// Stable identifier for the preset.
|
|
pub id: &'static str,
|
|
/// Display label shown in UIs.
|
|
pub label: &'static str,
|
|
/// Short human description shown next to the label in UIs.
|
|
pub description: &'static str,
|
|
/// Model slug (e.g., "gpt-5").
|
|
pub model: &'static str,
|
|
/// Reasoning effort to apply for this preset.
|
|
pub effort: ReasoningEffort,
|
|
}
|
|
|
|
/// Built-in list of model presets that pair a model with a reasoning effort.
|
|
///
|
|
/// Keep this UI-agnostic so it can be reused by both TUI and MCP server.
|
|
pub fn builtin_model_presets() -> &'static [ModelPreset] {
|
|
// Order reflects effort from minimal to high.
|
|
const PRESETS: &[ModelPreset] = &[
|
|
ModelPreset {
|
|
id: "gpt-5-minimal",
|
|
label: "gpt-5 minimal",
|
|
description: "— Fastest responses with very limited reasoning; ideal for coding, instructions, or lightweight tasks.",
|
|
model: "gpt-5",
|
|
effort: ReasoningEffort::Minimal,
|
|
},
|
|
ModelPreset {
|
|
id: "gpt-5-low",
|
|
label: "gpt-5 low",
|
|
description: "— Balances speed with some reasoning; useful for straightforward queries and short explanations.",
|
|
model: "gpt-5",
|
|
effort: ReasoningEffort::Low,
|
|
},
|
|
ModelPreset {
|
|
id: "gpt-5-medium",
|
|
label: "gpt-5 medium",
|
|
description: "— Default setting; provides a solid balance of reasoning depth and latency for general-purpose tasks.",
|
|
model: "gpt-5",
|
|
effort: ReasoningEffort::Medium,
|
|
},
|
|
ModelPreset {
|
|
id: "gpt-5-high",
|
|
label: "gpt-5 high",
|
|
description: "— Maximizes reasoning depth for complex or ambiguous problems.",
|
|
model: "gpt-5",
|
|
effort: ReasoningEffort::High,
|
|
},
|
|
];
|
|
PRESETS
|
|
}
|