mirror of
https://github.com/openai/codex.git
synced 2026-10-20 17:38:45 +00:00
## What changed - Move `Provider` and `RetryConfig` into `codex-client`, retaining re-exports from `codex-api`, and switch `codex-model-provider-info` to depend on `codex-client`. - Move feature-state metric emission into `codex-core`, preserving its behavior while removing the `codex-features` dependency on `codex-otel`. - Explicitly enable TLS features for `tonic` in `codex-config` and `reqwest` in `codex-http-client`. - Enable `png`'s `zlib-rs` feature directly in `codex-utils-image` to keep encoded PNG bytes stable when WebSocket dependencies are absent. GitOrigin-RevId: 91fd63ab01b55d516b3e80e3644d06af8d5a01f6
68 lines
1.9 KiB
Rust
68 lines
1.9 KiB
Rust
pub use codex_client::Provider;
|
|
pub use codex_client::RetryConfig;
|
|
|
|
pub fn is_azure_responses_provider(name: &str, base_url: Option<&str>) -> bool {
|
|
if name.eq_ignore_ascii_case("azure") {
|
|
true
|
|
} else if let Some(base_url) = base_url {
|
|
matches_azure_responses_base_url(base_url)
|
|
} else {
|
|
false
|
|
}
|
|
}
|
|
|
|
fn matches_azure_responses_base_url(base_url: &str) -> bool {
|
|
let base_url = base_url.to_ascii_lowercase();
|
|
const AZURE_MARKERS: [&str; 6] = [
|
|
"openai.azure.",
|
|
"cognitiveservices.azure.",
|
|
"aoai.azure.",
|
|
"azure-api.",
|
|
"azurefd.",
|
|
"windows.net/openai",
|
|
];
|
|
AZURE_MARKERS.iter().any(|marker| base_url.contains(marker))
|
|
}
|
|
|
|
#[cfg(test)]
|
|
mod tests {
|
|
use super::*;
|
|
|
|
#[test]
|
|
fn detects_azure_responses_base_urls() {
|
|
let positive_cases = [
|
|
"https://foo.openai.azure.com/openai",
|
|
"https://foo.openai.azure.us/openai/deployments/bar",
|
|
"https://foo.cognitiveservices.azure.cn/openai",
|
|
"https://foo.aoai.azure.com/openai",
|
|
"https://foo.openai.azure-api.net/openai",
|
|
"https://foo.z01.azurefd.net/",
|
|
];
|
|
|
|
for base_url in positive_cases {
|
|
assert!(
|
|
is_azure_responses_provider("test", Some(base_url)),
|
|
"expected {base_url} to be detected as Azure"
|
|
);
|
|
}
|
|
|
|
assert!(is_azure_responses_provider(
|
|
"Azure",
|
|
Some("https://example.com")
|
|
));
|
|
|
|
let negative_cases = [
|
|
"https://api.openai.com/v1",
|
|
"https://example.com/openai",
|
|
"https://myproxy.azurewebsites.net/openai",
|
|
];
|
|
|
|
for base_url in negative_cases {
|
|
assert!(
|
|
!is_azure_responses_provider("test", Some(base_url)),
|
|
"expected {base_url} not to be detected as Azure"
|
|
);
|
|
}
|
|
}
|
|
}
|