Groq configure fix (#5833)

Signed-off-by: neiii <1mrtemeck1@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
d0
2025-12-04 16:06:13 +00:00
committed by GitHub
parent 3a378b2877
commit 0aca19ec64
2 changed files with 46 additions and 1 deletions
+35
View File
@@ -372,4 +372,39 @@ mod tests {
_guard.set("GOOSE_CONTEXT_LIMIT", "64000");
let _result = create_lead_worker_from_env("openai", &default_model, "gpt-4o");
}
#[tokio::test]
async fn test_openai_compatible_providers_config_keys() {
let providers_list = providers().await;
let cases = vec![
("openai", "OPENAI_API_KEY"),
("groq", "GROQ_API_KEY"),
("mistral", "MISTRAL_API_KEY"),
("custom_deepseek", "DEEPSEEK_API_KEY"),
];
for (name, expected_key) in cases {
if let Some((meta, _)) = providers_list.iter().find(|(m, _)| m.name == name) {
assert!(
!meta.config_keys.is_empty(),
"{name} provider should have config keys"
);
assert_eq!(
meta.config_keys[0].name, expected_key,
"First config key for {name} should be {expected_key}, got {}",
meta.config_keys[0].name
);
assert!(
meta.config_keys[0].required,
"{expected_key} should be required"
);
assert!(
meta.config_keys[0].secret,
"{expected_key} should be secret"
);
} else {
// Provider not registered; skip test for this provider
continue;
}
}
}
}
@@ -96,6 +96,16 @@ impl ProviderRegistry {
})
.collect();
let mut config_keys = base_metadata.config_keys.clone();
if let Some(api_key_index) = config_keys
.iter()
.position(|key| key.required && key.secret)
{
config_keys[api_key_index] =
super::base::ConfigKey::new(&config.api_key_env, true, true, None);
}
let custom_metadata = ProviderMetadata {
name: config.name.clone(),
display_name: config.display_name.clone(),
@@ -103,7 +113,7 @@ impl ProviderRegistry {
default_model,
known_models,
model_doc_link: base_metadata.model_doc_link,
config_keys: base_metadata.config_keys,
config_keys,
};
self.entries.insert(