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:
@@ -372,4 +372,39 @@ mod tests {
|
|||||||
_guard.set("GOOSE_CONTEXT_LIMIT", "64000");
|
_guard.set("GOOSE_CONTEXT_LIMIT", "64000");
|
||||||
let _result = create_lead_worker_from_env("openai", &default_model, "gpt-4o");
|
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();
|
.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 {
|
let custom_metadata = ProviderMetadata {
|
||||||
name: config.name.clone(),
|
name: config.name.clone(),
|
||||||
display_name: config.display_name.clone(),
|
display_name: config.display_name.clone(),
|
||||||
@@ -103,7 +113,7 @@ impl ProviderRegistry {
|
|||||||
default_model,
|
default_model,
|
||||||
known_models,
|
known_models,
|
||||||
model_doc_link: base_metadata.model_doc_link,
|
model_doc_link: base_metadata.model_doc_link,
|
||||||
config_keys: base_metadata.config_keys,
|
config_keys,
|
||||||
};
|
};
|
||||||
|
|
||||||
self.entries.insert(
|
self.entries.insert(
|
||||||
|
|||||||
Reference in New Issue
Block a user