Add GPT-6.1 Terra to model catalogs (#57293)

## What changed

- Add `gpt-6.1-terra` to the bundled catalog and GCP Vertex model picker.
- Add `openai.gpt-6.1-terra` to Amazon Bedrock catalogs, including Global and US cross-region runtime variants.
- Use `gpt-6.1-terra` as GCP's preferred memory consolidation model.

## Testing

Extend catalog, model picker, thread startup, and Vertex request tests to cover GPT-6.1 Terra.

GitOrigin-RevId: edb3be3c4286c191349cdee742005ed3c67029e8
This commit is contained in:
BOZHANG-OAI
2026-10-26 22:13:14 +00:00
committed by copyberry
parent b52a272cff
commit 126a0ee92e
15 changed files with 315 additions and 77 deletions
@@ -246,6 +246,7 @@ async fn thread_start_provider_model_fallback_uses_bedrock_static_catalog() -> R
.await?;
for model in [
"openai.gpt-6.1-sol",
"openai.gpt-6.1-terra",
"openai.gpt-6-sol",
"openai.gpt-6-luna",
"openai.gpt-5.6-sol",
@@ -295,6 +296,8 @@ async fn thread_start_bedrock_runtime_prefers_global_cross_region_models() -> Re
for model in [
"global.openai.gpt-6.1-sol",
"us.openai.gpt-6.1-sol",
"global.openai.gpt-6.1-terra",
"us.openai.gpt-6.1-terra",
"global.openai.gpt-6-sol",
"us.openai.gpt-6-sol",
"global.openai.gpt-6-luna",
+8 -3
View File
@@ -94,8 +94,12 @@ async fn vertex_credential_file_is_retained_when_refreshing_after_401() -> Resul
Ok(())
}
#[test_case("gpt-6.1-sol"; "sol")]
#[test_case("gpt-6.1-terra"; "terra")]
#[tokio::test(flavor = "multi_thread", worker_threads = 2)]
async fn vertex_requests_use_command_auth_with_namespaces_and_tool_search() -> Result<()> {
async fn vertex_requests_use_command_auth_with_namespaces_and_tool_search(
model: &str,
) -> Result<()> {
skip_if_no_network!(Ok(()));
let server = responses::start_mock_server().await;
@@ -116,13 +120,14 @@ async fn vertex_requests_use_command_auth_with_namespaces_and_tool_search() -> R
provider.auth = Some(auth_fixture.auth());
let mut test = test_codex()
.with_model_info_override("gpt-6.1-sol", |model| {
.with_model_info_override(model, |model| {
model.use_responses_lite = true;
model.tool_mode = Some(ToolMode::CodeModeOnly);
model.apply_patch_tool_type = Some(ApplyPatchToolType::Freeform);
model.supports_search_tool = true;
model.multi_agent_version = Some(MultiAgentVersion::V2);
})
.with_model(model)
.with_config(move |config| {
config.model_provider_id = GCP_PROVIDER_ID.to_string();
config.model_provider = provider;
@@ -183,7 +188,7 @@ async fn vertex_requests_use_command_auth_with_namespaces_and_tool_search() -> R
"Vertex request must omit Responses Lite additional_tools inputs"
);
let body = request.body_json();
assert_eq!(body["model"], "gpt-6.1-sol");
assert_eq!(body["model"], model);
assert_eq!(request.instructions_text(), "Vertex test instructions");
let tools = body["tools"]
.as_array()
@@ -18,4 +18,9 @@ expression: "models.iter().map(|model|\n(&model.model, model.show_in_picker, mod
true,
false,
),
(
"gpt-6.1-terra",
true,
false,
),
]
+1
View File
@@ -92,6 +92,7 @@ pub const GCP_PROVIDER_ID: &str = "gcp";
pub const AMAZON_BEDROCK_GPT_5_5_MODEL_ID: &str = "openai.gpt-5.5";
pub const AMAZON_BEDROCK_GPT_5_6_SOL_MODEL_ID: &str = "openai.gpt-5.6-sol";
pub const AMAZON_BEDROCK_GPT_6_1_SOL_MODEL_ID: &str = "openai.gpt-6.1-sol";
pub const AMAZON_BEDROCK_GPT_6_1_TERRA_MODEL_ID: &str = "openai.gpt-6.1-terra";
pub const AMAZON_BEDROCK_GPT_6_SOL_MODEL_ID: &str = "openai.gpt-6-sol";
pub const AMAZON_BEDROCK_GPT_6_LUNA_MODEL_ID: &str = "openai.gpt-6-luna";
pub const AMAZON_BEDROCK_GPT_6_ASTRA_MODEL_ID: &str = "openai.gpt-6-astra";
@@ -3,6 +3,7 @@ use codex_model_provider_info::AMAZON_BEDROCK_GPT_5_6_LUNA_MODEL_ID;
use codex_model_provider_info::AMAZON_BEDROCK_GPT_5_6_SOL_MODEL_ID;
use codex_model_provider_info::AMAZON_BEDROCK_GPT_5_6_TERRA_MODEL_ID;
use codex_model_provider_info::AMAZON_BEDROCK_GPT_6_1_SOL_MODEL_ID;
use codex_model_provider_info::AMAZON_BEDROCK_GPT_6_1_TERRA_MODEL_ID;
use codex_model_provider_info::AMAZON_BEDROCK_GPT_6_ASTRA_MODEL_ID;
use codex_model_provider_info::AMAZON_BEDROCK_GPT_6_LUNA_MODEL_ID;
use codex_model_provider_info::AMAZON_BEDROCK_GPT_6_SOL_MODEL_ID;
@@ -20,6 +21,7 @@ const GPT_5_6_SOL_OPENAI_MODEL_ID: &str = "gpt-5.6-sol";
const GPT_5_6_TERRA_OPENAI_MODEL_ID: &str = "gpt-5.6-terra";
const GPT_5_6_LUNA_OPENAI_MODEL_ID: &str = "gpt-5.6-luna";
const GPT_6_1_SOL_OPENAI_MODEL_ID: &str = "gpt-6.1-sol";
const GPT_6_1_TERRA_OPENAI_MODEL_ID: &str = "gpt-6.1-terra";
const GPT_6_SOL_OPENAI_MODEL_ID: &str = "gpt-6-sol";
const GPT_6_LUNA_OPENAI_MODEL_ID: &str = "gpt-6-luna";
const GPT_6_ASTRA_OPENAI_MODEL_ID: &str = "gpt-6-astra";
@@ -40,41 +42,47 @@ pub(crate) fn static_model_catalog() -> ModelsResponse {
"GPT-6-Astra",
/*priority*/ 1,
),
bedrock_model(
bundled_openai_model(GPT_6_1_TERRA_OPENAI_MODEL_ID),
AMAZON_BEDROCK_GPT_6_1_TERRA_MODEL_ID,
"GPT-6.1 Terra",
/*priority*/ 2,
),
bedrock_model(
bundled_openai_model(GPT_6_SOL_OPENAI_MODEL_ID),
AMAZON_BEDROCK_GPT_6_SOL_MODEL_ID,
"GPT-6 Sol",
/*priority*/ 2,
/*priority*/ 3,
),
bedrock_model(
bundled_openai_model(GPT_6_LUNA_OPENAI_MODEL_ID),
AMAZON_BEDROCK_GPT_6_LUNA_MODEL_ID,
"GPT-6 Luna",
/*priority*/ 3,
/*priority*/ 4,
),
bedrock_model(
bundled_openai_model(GPT_5_6_SOL_OPENAI_MODEL_ID),
AMAZON_BEDROCK_GPT_5_6_SOL_MODEL_ID,
"GPT-5.6 Sol",
/*priority*/ 4,
/*priority*/ 5,
),
bedrock_model(
bundled_openai_model(GPT_5_6_TERRA_OPENAI_MODEL_ID),
AMAZON_BEDROCK_GPT_5_6_TERRA_MODEL_ID,
"GPT-5.6 Terra",
/*priority*/ 5,
/*priority*/ 6,
),
bedrock_model(
bundled_openai_model(GPT_5_6_LUNA_OPENAI_MODEL_ID),
AMAZON_BEDROCK_GPT_5_6_LUNA_MODEL_ID,
"GPT-5.6 Luna",
/*priority*/ 6,
/*priority*/ 7,
),
gpt_5_bedrock_model(
GPT_5_5_OPENAI_MODEL_ID,
AMAZON_BEDROCK_GPT_5_5_MODEL_ID,
"GPT-5.5",
/*priority*/ 7,
/*priority*/ 8,
),
],
};
@@ -199,6 +207,7 @@ mod tests {
vec![
AMAZON_BEDROCK_GPT_6_1_SOL_MODEL_ID,
AMAZON_BEDROCK_GPT_6_ASTRA_MODEL_ID,
AMAZON_BEDROCK_GPT_6_1_TERRA_MODEL_ID,
AMAZON_BEDROCK_GPT_6_SOL_MODEL_ID,
AMAZON_BEDROCK_GPT_6_LUNA_MODEL_ID,
AMAZON_BEDROCK_GPT_5_6_SOL_MODEL_ID,
@@ -237,6 +246,12 @@ mod tests {
Some(872_000),
WebSearchToolType::Text,
),
(
AMAZON_BEDROCK_GPT_6_1_TERRA_MODEL_ID,
Some(500_000),
Some(872_000),
WebSearchToolType::Text,
),
(
AMAZON_BEDROCK_GPT_6_SOL_MODEL_ID,
Some(GPT_5_BEDROCK_CONTEXT_WINDOW),
@@ -332,35 +347,41 @@ mod tests {
"GPT-6.1 Sol",
0,
),
(
bundled_openai_model(GPT_6_1_TERRA_OPENAI_MODEL_ID),
AMAZON_BEDROCK_GPT_6_1_TERRA_MODEL_ID,
"GPT-6.1 Terra",
2,
),
(
bundled_openai_model(GPT_6_SOL_OPENAI_MODEL_ID),
AMAZON_BEDROCK_GPT_6_SOL_MODEL_ID,
"GPT-6 Sol",
2,
3,
),
(
bundled_openai_model(GPT_6_LUNA_OPENAI_MODEL_ID),
AMAZON_BEDROCK_GPT_6_LUNA_MODEL_ID,
"GPT-6 Luna",
3,
4,
),
(
bundled_openai_model(GPT_5_6_SOL_OPENAI_MODEL_ID),
AMAZON_BEDROCK_GPT_5_6_SOL_MODEL_ID,
"GPT-5.6 Sol",
4,
5,
),
(
bundled_openai_model(GPT_5_6_TERRA_OPENAI_MODEL_ID),
AMAZON_BEDROCK_GPT_5_6_TERRA_MODEL_ID,
"GPT-5.6 Terra",
5,
6,
),
(
bundled_openai_model(GPT_5_6_LUNA_OPENAI_MODEL_ID),
AMAZON_BEDROCK_GPT_5_6_LUNA_MODEL_ID,
"GPT-5.6 Luna",
6,
7,
),
(
bundled_openai_model(GPT_6_ASTRA_OPENAI_MODEL_ID),
@@ -2,6 +2,7 @@ use codex_model_provider_info::AMAZON_BEDROCK_GPT_5_6_LUNA_MODEL_ID;
use codex_model_provider_info::AMAZON_BEDROCK_GPT_5_6_SOL_MODEL_ID;
use codex_model_provider_info::AMAZON_BEDROCK_GPT_5_6_TERRA_MODEL_ID;
use codex_model_provider_info::AMAZON_BEDROCK_GPT_6_1_SOL_MODEL_ID;
use codex_model_provider_info::AMAZON_BEDROCK_GPT_6_1_TERRA_MODEL_ID;
use codex_model_provider_info::AMAZON_BEDROCK_GPT_6_ASTRA_MODEL_ID;
use codex_model_provider_info::AMAZON_BEDROCK_GPT_6_LUNA_MODEL_ID;
use codex_model_provider_info::AMAZON_BEDROCK_GPT_6_SOL_MODEL_ID;
@@ -25,6 +26,7 @@ pub(super) fn static_runtime_model_catalog() -> ModelsResponse {
| AMAZON_BEDROCK_GPT_5_6_TERRA_MODEL_ID
| AMAZON_BEDROCK_GPT_5_6_LUNA_MODEL_ID
| AMAZON_BEDROCK_GPT_6_1_SOL_MODEL_ID
| AMAZON_BEDROCK_GPT_6_1_TERRA_MODEL_ID
| AMAZON_BEDROCK_GPT_6_ASTRA_MODEL_ID
| AMAZON_BEDROCK_GPT_6_SOL_MODEL_ID
| AMAZON_BEDROCK_GPT_6_LUNA_MODEL_ID
@@ -20,25 +20,31 @@ fn runtime_catalog_includes_supported_cross_region_models_in_priority_order() {
vec![
("global.openai.gpt-6.1-sol", "GPT-6.1 Sol (Global)", 0),
("global.openai.gpt-6-astra", "GPT-6-Astra (Global)", 1),
("global.openai.gpt-6-sol", "GPT-6 Sol (Global)", 2),
("global.openai.gpt-6-luna", "GPT-6 Luna (Global)", 3),
("global.openai.gpt-5.6-sol", "GPT-5.6 Sol (Global)", 4),
("global.openai.gpt-5.6-terra", "GPT-5.6 Terra (Global)", 5),
("global.openai.gpt-5.6-luna", "GPT-5.6 Luna (Global)", 6),
("us.openai.gpt-6.1-sol", "GPT-6.1 Sol (US cross-region)", 7),
("us.openai.gpt-6-astra", "GPT-6-Astra (US cross-region)", 8),
("us.openai.gpt-6-sol", "GPT-6 Sol (US cross-region)", 9),
("us.openai.gpt-6-luna", "GPT-6 Luna (US cross-region)", 10),
("us.openai.gpt-5.6-sol", "GPT-5.6 Sol (US cross-region)", 11),
("global.openai.gpt-6.1-terra", "GPT-6.1 Terra (Global)", 2),
("global.openai.gpt-6-sol", "GPT-6 Sol (Global)", 3),
("global.openai.gpt-6-luna", "GPT-6 Luna (Global)", 4),
("global.openai.gpt-5.6-sol", "GPT-5.6 Sol (Global)", 5),
("global.openai.gpt-5.6-terra", "GPT-5.6 Terra (Global)", 6),
("global.openai.gpt-5.6-luna", "GPT-5.6 Luna (Global)", 7),
("us.openai.gpt-6.1-sol", "GPT-6.1 Sol (US cross-region)", 8),
("us.openai.gpt-6-astra", "GPT-6-Astra (US cross-region)", 9),
(
"us.openai.gpt-6.1-terra",
"GPT-6.1 Terra (US cross-region)",
10
),
("us.openai.gpt-6-sol", "GPT-6 Sol (US cross-region)", 11),
("us.openai.gpt-6-luna", "GPT-6 Luna (US cross-region)", 12),
("us.openai.gpt-5.6-sol", "GPT-5.6 Sol (US cross-region)", 13),
(
"us.openai.gpt-5.6-terra",
"GPT-5.6 Terra (US cross-region)",
12
14
),
(
"us.openai.gpt-5.6-luna",
"GPT-5.6 Luna (US cross-region)",
13
15
),
]
);
@@ -72,6 +78,12 @@ fn runtime_catalog_disables_web_search_without_overriding_review_models() {
false,
Some(MultiAgentVersion::V2),
),
(
"global.openai.gpt-6.1-terra",
None,
false,
Some(MultiAgentVersion::V2),
),
(
"global.openai.gpt-6-sol",
None,
@@ -114,6 +126,12 @@ fn runtime_catalog_disables_web_search_without_overriding_review_models() {
false,
Some(MultiAgentVersion::V2),
),
(
"us.openai.gpt-6.1-terra",
None,
false,
Some(MultiAgentVersion::V2),
),
(
"us.openai.gpt-6-sol",
None,
+30 -27
View File
@@ -247,7 +247,7 @@ async fn bundled_vertex_models_filter_catalog_and_normalize_unsupported_tool_met
let bundled_models = codex_models_manager::bundled_models_response()
.expect("bundled model catalog should deserialize")
.models;
let mut expected: Vec<_> = ["gpt-6-astra", "gpt-6.1-sol", "gpt-6-luna"]
let mut expected: Vec<_> = ["gpt-6-astra", "gpt-6.1-sol", "gpt-6.1-terra", "gpt-6-luna"]
.into_iter()
.map(|slug| {
bundled_models
@@ -275,39 +275,42 @@ async fn bundled_vertex_models_filter_catalog_and_normalize_unsupported_tool_met
("gpt-6.1-sol".to_string(), true),
("gpt-6-astra".to_string(), true),
("gpt-6-luna".to_string(), true),
("gpt-6.1-terra".to_string(), true),
]
);
}
#[tokio::test]
async fn configured_vertex_models_filter_catalog_and_normalize_tool_metadata_without_cache() {
let provider = GcpModelProvider::new(
ModelProviderInfo::create_gcp_provider(),
/*auth_manager*/ None,
);
let mut configured_model = codex_models_manager::bundled_models_response()
.expect("bundled model catalog should deserialize")
.models
.into_iter()
.find(|model| model.slug == "gpt-6.1-sol")
.expect("bundled model catalog should contain gpt-6.1-sol");
configured_model.use_responses_lite = true;
configured_model.tool_mode = Some(ToolMode::CodeModeOnly);
configured_model.apply_patch_tool_type = Some(ApplyPatchToolType::Freeform);
configured_model.multi_agent_version = Some(MultiAgentVersion::V2);
let mut expected_model = configured_model.clone();
expected_model.use_responses_lite = false;
expected_model.tool_mode = Some(ToolMode::Direct);
expected_model.apply_patch_tool_type = None;
let mut unsupported_model = configured_model.clone();
unsupported_model.slug = "gpt-6-sol".to_string();
let mut unsupported_variant = configured_model.clone();
unsupported_variant.slug = "gpt-6.1-sol-extra".to_string();
let manager = provider.models_manager_without_cache(Some(ModelsResponse {
models: vec![unsupported_model, configured_model, unsupported_variant],
}));
for model in ["gpt-6.1-sol", "gpt-6.1-terra"] {
let provider = GcpModelProvider::new(
ModelProviderInfo::create_gcp_provider(),
/*auth_manager*/ None,
);
let mut configured_model = codex_models_manager::bundled_models_response()
.expect("bundled model catalog should deserialize")
.models
.into_iter()
.find(|info| info.slug == model)
.expect("bundled model catalog should contain the supported Vertex model");
configured_model.use_responses_lite = true;
configured_model.tool_mode = Some(ToolMode::CodeModeOnly);
configured_model.apply_patch_tool_type = Some(ApplyPatchToolType::Freeform);
configured_model.multi_agent_version = Some(MultiAgentVersion::V2);
let mut expected_model = configured_model.clone();
expected_model.use_responses_lite = false;
expected_model.tool_mode = Some(ToolMode::Direct);
expected_model.apply_patch_tool_type = None;
let mut unsupported_model = configured_model.clone();
unsupported_model.slug = "gpt-6-sol".to_string();
let mut unsupported_variant = configured_model.clone();
unsupported_variant.slug = format!("{model}-extra");
let manager = provider.models_manager_without_cache(Some(ModelsResponse {
models: vec![unsupported_model, configured_model, unsupported_variant],
}));
assert_eq!(manager.get_remote_models().await, vec![expected_model]);
assert_eq!(manager.get_remote_models().await, vec![expected_model]);
}
}
#[tokio::test]
+2 -2
View File
@@ -98,7 +98,7 @@ impl ModelProvider for GcpModelProvider {
}
fn memory_consolidation_preferred_model(&self) -> &'static str {
"gpt-6.1-sol"
"gpt-6.1-terra"
}
fn auth_manager(&self) -> Option<Arc<AuthManager>> {
@@ -155,7 +155,7 @@ impl ModelProvider for GcpModelProvider {
model_catalog.models.retain(|model| {
matches!(
model.slug.as_str(),
"gpt-6-astra" | "gpt-6-luna" | "gpt-6.1-sol"
"gpt-6-astra" | "gpt-6-luna" | "gpt-6.1-sol" | "gpt-6.1-terra"
)
});
// Vertex supports function tools, namespaces, and client-side tool search, but not
+3
View File
@@ -1414,6 +1414,7 @@ printf '%s\n' '{"AccessKeyId":"exported","SecretAccessKey":"secret"}'
assert_eq!(uncached_catalog, catalog);
for slug in [
"openai.gpt-6.1-sol",
"openai.gpt-6.1-terra",
"openai.gpt-6-sol",
"openai.gpt-6-luna",
"openai.gpt-5.6-sol",
@@ -1446,6 +1447,7 @@ printf '%s\n' '{"AccessKeyId":"exported","SecretAccessKey":"secret"}'
vec![
("openai.gpt-6.1-sol", "GPT-6.1 Sol"),
("openai.gpt-6-astra", "GPT-6-Astra"),
("openai.gpt-6.1-terra", "GPT-6.1 Terra"),
("openai.gpt-6-sol", "GPT-6 Sol"),
("openai.gpt-6-luna", "GPT-6 Luna"),
("openai.gpt-5.6-sol", "GPT-5.6 Sol"),
@@ -1469,6 +1471,7 @@ printf '%s\n' '{"AccessKeyId":"exported","SecretAccessKey":"secret"}'
vec![
"openai.gpt-6.1-sol",
"openai.gpt-6-astra",
"openai.gpt-6.1-terra",
"openai.gpt-6-sol",
"openai.gpt-6-luna",
"openai.gpt-5.6-sol",
File diff suppressed because one or more lines are too long
@@ -7,11 +7,11 @@ expression: "render_bottom_popup(&chat, 100)"
› 1. GPT-6.1 Sol (current) Latest workhorse model for coding and everyday work.
2. GPT-6-Astra Frontier intelligence for the most demanding work.
3. GPT-6 Sol Previous generation workhorse model.
4. GPT-6 Luna Fast and affordable model for easier tasks.
5. GPT-5.6 Sol Older generation workhorse model.
6. GPT-5.6 Terra Older balanced model for straightforward work.
7. GPT-5.6 Luna Older fast and efficient model.
8. GPT-5.5 Legacy coding model.
3. GPT-6.1 Terra GPT-6.1 Terra Codex model.
4. GPT-6 Sol Previous generation workhorse model.
5. GPT-6 Luna Fast and affordable model for easier tasks.
6. GPT-5.6 Sol Older generation workhorse model.
7. GPT-5.6 Terra Older balanced model for straightforward work.
8. GPT-5.6 Luna Older fast and efficient model.
↓
enter select · esc back
@@ -7,11 +7,11 @@ expression: "render_bottom_popup(&chat, 100)"
› 1. GPT-6.1 Sol (Global) (current) Latest workhorse model for coding and everyday work.
2. GPT-6-Astra (Global) Frontier intelligence for the most demanding work.
3. GPT-6 Sol (Global) Previous generation workhorse model.
4. GPT-6 Luna (Global) Fast and affordable model for easier tasks.
5. GPT-5.6 Sol (Global) Older generation workhorse model.
6. GPT-5.6 Terra (Global) Older balanced model for straightforward work.
7. GPT-5.6 Luna (Global) Older fast and efficient model.
8. GPT-6.1 Sol (US cross-region) Latest workhorse model for coding and everyday work.
3. GPT-6.1 Terra (Global) GPT-6.1 Terra Codex model.
4. GPT-6 Sol (Global) Previous generation workhorse model.
5. GPT-6 Luna (Global) Fast and affordable model for easier tasks.
6. GPT-5.6 Sol (Global) Older generation workhorse model.
7. GPT-5.6 Terra (Global) Older balanced model for straightforward work.
8. GPT-5.6 Luna (Global) Older fast and efficient model.
↓
enter select · esc back
@@ -1,17 +1,18 @@
---
source: tui/src/chatwidget/tests/popups_and_settings.rs
expression: "render_bottom_popup(&chat, 80)"
assertion_line: 3361
expression: popup
---
Select Model and Effort
1. GPT-6.1-Sol Latest workhorse model for coding and everyday work.
↑
2. GPT-6-Astra Frontier intelligence for the most demanding work.
3. GPT-6-Sol Previous generation workhorse model.
4. GPT-6-Luna Fast and affordable model for easier tasks.
5. GPT-5.6-Sol Older generation workhorse model.
6. GPT-5.6-Terra Older balanced model for straightforward work.
7. GPT-5.6-Luna Older fast and efficient model.
› 8. GPT-5.5 (current) Legacy coding model.
6. GPT-6.1 Terra GPT-6.1 Terra Codex model.
7. GPT-5.6-Terra Older balanced model for straightforward work.
8. GPT-5.6-Luna Older fast and efficient model.
› 9. GPT-5.5 (current) Legacy coding model.
enter select · esc back
@@ -143,19 +143,19 @@ async fn bedrock_ultrafast_slash_command_selects_and_clears_tier() {
"mantle_sol61",
ModelProviderInfo::create_amazon_bedrock_provider(/*aws*/ None),
"openai.gpt-6.1-sol",
"openai.gpt-6-sol",
"openai.gpt-6.1-terra",
),
(
"runtime_global_sol61",
ModelProviderInfo::create_amazon_bedrock_runtime_provider(/*aws*/ None),
"global.openai.gpt-6.1-sol",
"global.openai.gpt-6-sol",
"global.openai.gpt-6.1-terra",
),
(
"runtime_us_sol61",
ModelProviderInfo::create_amazon_bedrock_runtime_provider(/*aws*/ None),
"us.openai.gpt-6.1-sol",
"us.openai.gpt-6-sol",
"us.openai.gpt-6.1-terra",
),
] {
let presets = create_model_provider(provider_info.clone(), /*auth_manager*/ None)