chatgpt_codex: Support reasoning and gpt-5.4 (#7941)
Signed-off-by: alexyao2015 <alexyao2015@users.noreply.github.com> Signed-off-by: Douwe Osinga <douwe@squareup.com> Co-authored-by: alexyao2015 <alexyao2015@users.noreply.github.com> Co-authored-by: Douwe Osinga <douwe@squareup.com>
This commit is contained in:
@@ -22,6 +22,7 @@ use goose::config::{
|
||||
use goose::model::ModelConfig;
|
||||
use goose::posthog::{get_telemetry_choice, TELEMETRY_ENABLED_KEY};
|
||||
use goose::providers::base::ConfigKey;
|
||||
use goose::providers::chatgpt_codex::reasoning_levels_for_model;
|
||||
use goose::providers::formats::anthropic::supports_adaptive_thinking;
|
||||
use goose::providers::provider_test::test_provider_configuration;
|
||||
use goose::providers::{create, providers, retry_operation, RetryConfig};
|
||||
@@ -809,6 +810,26 @@ pub async fn configure_provider_dialog() -> anyhow::Result<bool> {
|
||||
}
|
||||
}
|
||||
|
||||
if provider_name == "chatgpt_codex" {
|
||||
let valid_levels = reasoning_levels_for_model(&model);
|
||||
if !valid_levels.is_empty() {
|
||||
let mut select = cliclack::select("Select reasoning effort level:");
|
||||
for &level in valid_levels {
|
||||
let description = match level {
|
||||
"low" => "Low - Fast responses with lighter reasoning",
|
||||
"medium" => "Medium - Balances speed and reasoning depth for everyday tasks",
|
||||
"high" => "High - Greater reasoning depth for complex problems",
|
||||
"xhigh" => "Extra High - Extra high reasoning depth for complex problems",
|
||||
_ => "",
|
||||
};
|
||||
select = select.item(level, description, "");
|
||||
}
|
||||
select = select.initial_value("medium");
|
||||
let effort: &str = select.interact()?;
|
||||
config.set_chatgpt_codex_reasoning_effort(effort.to_string())?;
|
||||
}
|
||||
}
|
||||
|
||||
// Test the configuration
|
||||
let spin = spinner();
|
||||
spin.start("Checking your configuration...");
|
||||
|
||||
Reference in New Issue
Block a user