fix(bedrock): normalize aws-bedrock alias and harden docs/tests
This commit is contained in:
parent
0e4e0d590d
commit
a0098de28c
3 changed files with 39 additions and 3 deletions
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
This document maps provider IDs, aliases, and credential environment variables.
|
This document maps provider IDs, aliases, and credential environment variables.
|
||||||
|
|
||||||
Last verified: **February 18, 2026**.
|
Last verified: **February 19, 2026**.
|
||||||
|
|
||||||
## How to List Providers
|
## How to List Providers
|
||||||
|
|
||||||
|
|
@ -41,7 +41,7 @@ credential is not reused for fallback providers.
|
||||||
| `zai` | `z.ai` | No | `ZAI_API_KEY` |
|
| `zai` | `z.ai` | No | `ZAI_API_KEY` |
|
||||||
| `glm` | `zhipu` | No | `GLM_API_KEY` |
|
| `glm` | `zhipu` | No | `GLM_API_KEY` |
|
||||||
| `minimax` | `minimax-intl`, `minimax-io`, `minimax-global`, `minimax-cn`, `minimaxi`, `minimax-oauth`, `minimax-oauth-cn`, `minimax-portal`, `minimax-portal-cn` | No | `MINIMAX_OAUTH_TOKEN`, `MINIMAX_API_KEY` |
|
| `minimax` | `minimax-intl`, `minimax-io`, `minimax-global`, `minimax-cn`, `minimaxi`, `minimax-oauth`, `minimax-oauth-cn`, `minimax-portal`, `minimax-portal-cn` | No | `MINIMAX_OAUTH_TOKEN`, `MINIMAX_API_KEY` |
|
||||||
| `bedrock` | `aws-bedrock` | No | `AWS_ACCESS_KEY_ID` + `AWS_SECRET_ACCESS_KEY` + `AWS_REGION` |
|
| `bedrock` | `aws-bedrock` | No | `AWS_ACCESS_KEY_ID` + `AWS_SECRET_ACCESS_KEY` (optional: `AWS_REGION`) |
|
||||||
| `qianfan` | `baidu` | No | `QIANFAN_API_KEY` |
|
| `qianfan` | `baidu` | No | `QIANFAN_API_KEY` |
|
||||||
| `qwen` | `dashscope`, `qwen-intl`, `dashscope-intl`, `qwen-us`, `dashscope-us` | No | `DASHSCOPE_API_KEY` |
|
| `qwen` | `dashscope`, `qwen-intl`, `dashscope-intl`, `qwen-us`, `dashscope-us` | No | `DASHSCOPE_API_KEY` |
|
||||||
| `groq` | — | No | `GROQ_API_KEY` |
|
| `groq` | — | No | `GROQ_API_KEY` |
|
||||||
|
|
|
||||||
|
|
@ -505,6 +505,7 @@ fn canonical_provider_name(provider_name: &str) -> &str {
|
||||||
"google" | "google-gemini" => "gemini",
|
"google" | "google-gemini" => "gemini",
|
||||||
"kimi_coding" | "kimi_for_coding" => "kimi-code",
|
"kimi_coding" | "kimi_for_coding" => "kimi-code",
|
||||||
"nvidia-nim" | "build.nvidia.com" => "nvidia",
|
"nvidia-nim" | "build.nvidia.com" => "nvidia",
|
||||||
|
"aws-bedrock" => "bedrock",
|
||||||
_ => provider_name,
|
_ => provider_name,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -547,7 +548,7 @@ fn default_model_for_provider(provider: &str) -> String {
|
||||||
"ollama" => "llama3.2".into(),
|
"ollama" => "llama3.2".into(),
|
||||||
"gemini" => "gemini-2.5-pro".into(),
|
"gemini" => "gemini-2.5-pro".into(),
|
||||||
"kimi-code" => "kimi-for-coding".into(),
|
"kimi-code" => "kimi-for-coding".into(),
|
||||||
"bedrock" | "aws-bedrock" => "anthropic.claude-sonnet-4-5-20250929-v1:0".into(),
|
"bedrock" => "anthropic.claude-sonnet-4-5-20250929-v1:0".into(),
|
||||||
"nvidia" => "meta/llama-3.3-70b-instruct".into(),
|
"nvidia" => "meta/llama-3.3-70b-instruct".into(),
|
||||||
"astrai" => "anthropic/claude-sonnet-4.6".into(),
|
"astrai" => "anthropic/claude-sonnet-4.6".into(),
|
||||||
_ => "anthropic/claude-sonnet-4.6".into(),
|
_ => "anthropic/claude-sonnet-4.6".into(),
|
||||||
|
|
@ -5047,6 +5048,10 @@ mod tests {
|
||||||
assert_eq!(default_model_for_provider("gemini"), "gemini-2.5-pro");
|
assert_eq!(default_model_for_provider("gemini"), "gemini-2.5-pro");
|
||||||
assert_eq!(default_model_for_provider("google"), "gemini-2.5-pro");
|
assert_eq!(default_model_for_provider("google"), "gemini-2.5-pro");
|
||||||
assert_eq!(default_model_for_provider("kimi-code"), "kimi-for-coding");
|
assert_eq!(default_model_for_provider("kimi-code"), "kimi-for-coding");
|
||||||
|
assert_eq!(
|
||||||
|
default_model_for_provider("bedrock"),
|
||||||
|
"anthropic.claude-sonnet-4-5-20250929-v1:0"
|
||||||
|
);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
default_model_for_provider("google-gemini"),
|
default_model_for_provider("google-gemini"),
|
||||||
"gemini-2.5-pro"
|
"gemini-2.5-pro"
|
||||||
|
|
@ -5081,6 +5086,7 @@ mod tests {
|
||||||
assert_eq!(canonical_provider_name("zai-cn"), "zai");
|
assert_eq!(canonical_provider_name("zai-cn"), "zai");
|
||||||
assert_eq!(canonical_provider_name("z.ai-global"), "zai");
|
assert_eq!(canonical_provider_name("z.ai-global"), "zai");
|
||||||
assert_eq!(canonical_provider_name("nvidia-nim"), "nvidia");
|
assert_eq!(canonical_provider_name("nvidia-nim"), "nvidia");
|
||||||
|
assert_eq!(canonical_provider_name("aws-bedrock"), "bedrock");
|
||||||
assert_eq!(canonical_provider_name("build.nvidia.com"), "nvidia");
|
assert_eq!(canonical_provider_name("build.nvidia.com"), "nvidia");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -5130,6 +5136,19 @@ mod tests {
|
||||||
assert!(ids.contains(&"anthropic/claude-sonnet-4.6".to_string()));
|
assert!(ids.contains(&"anthropic/claude-sonnet-4.6".to_string()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn curated_models_for_bedrock_include_verified_model_ids() {
|
||||||
|
let ids: Vec<String> = curated_models_for_provider("bedrock")
|
||||||
|
.into_iter()
|
||||||
|
.map(|(id, _)| id)
|
||||||
|
.collect();
|
||||||
|
|
||||||
|
assert!(ids.contains(&"anthropic.claude-sonnet-4-6".to_string()));
|
||||||
|
assert!(ids.contains(&"anthropic.claude-opus-4-6-v1".to_string()));
|
||||||
|
assert!(ids.contains(&"anthropic.claude-haiku-4-5-20251001-v1:0".to_string()));
|
||||||
|
assert!(ids.contains(&"anthropic.claude-sonnet-4-5-20250929-v1:0".to_string()));
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn curated_models_for_moonshot_drop_deprecated_aliases() {
|
fn curated_models_for_moonshot_drop_deprecated_aliases() {
|
||||||
let ids: Vec<String> = curated_models_for_provider("moonshot")
|
let ids: Vec<String> = curated_models_for_provider("moonshot")
|
||||||
|
|
@ -5229,6 +5248,10 @@ mod tests {
|
||||||
curated_models_for_provider("nvidia"),
|
curated_models_for_provider("nvidia"),
|
||||||
curated_models_for_provider("build.nvidia.com")
|
curated_models_for_provider("build.nvidia.com")
|
||||||
);
|
);
|
||||||
|
assert_eq!(
|
||||||
|
curated_models_for_provider("bedrock"),
|
||||||
|
curated_models_for_provider("aws-bedrock")
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|
|
||||||
|
|
@ -1219,6 +1219,19 @@ mod tests {
|
||||||
assert!(resolved.is_none());
|
assert!(resolved.is_none());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn resolve_provider_credential_bedrock_uses_internal_credential_path() {
|
||||||
|
let _generic_guard = EnvGuard::set("API_KEY", Some("generic-key"));
|
||||||
|
let _override_guard = EnvGuard::set("OPENROUTER_API_KEY", Some("openrouter-key"));
|
||||||
|
|
||||||
|
assert_eq!(
|
||||||
|
resolve_provider_credential("bedrock", Some("explicit")),
|
||||||
|
Some("explicit".to_string())
|
||||||
|
);
|
||||||
|
assert!(resolve_provider_credential("bedrock", None).is_none());
|
||||||
|
assert!(resolve_provider_credential("aws-bedrock", None).is_none());
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn regional_alias_predicates_cover_expected_variants() {
|
fn regional_alias_predicates_cover_expected_variants() {
|
||||||
assert!(is_moonshot_alias("moonshot"));
|
assert!(is_moonshot_alias("moonshot"));
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue