40 lines
1.1 KiB
Rust
40 lines
1.1 KiB
Rust
|
|
/// Identify whether a base_url points at an OpenAI-compatible root (".../v1").
|
||
|
|
pub(crate) fn is_openai_compatible_base_url(base_url: &str) -> bool {
|
||
|
|
base_url.trim_end_matches('/').ends_with("/v1")
|
||
|
|
}
|
||
|
|
|
||
|
|
/// Convert a provider base_url into the native Ollama host root.
|
||
|
|
/// For example, "http://localhost:11434/v1" -> "http://localhost:11434".
|
||
|
|
pub fn base_url_to_host_root(base_url: &str) -> String {
|
||
|
|
let trimmed = base_url.trim_end_matches('/');
|
||
|
|
if trimmed.ends_with("/v1") {
|
||
|
|
trimmed
|
||
|
|
.trim_end_matches("/v1")
|
||
|
|
.trim_end_matches('/')
|
||
|
|
.to_string()
|
||
|
|
} else {
|
||
|
|
trimmed.to_string()
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
#[cfg(test)]
|
||
|
|
mod tests {
|
||
|
|
use super::*;
|
||
|
|
|
||
|
|
#[test]
|
||
|
|
fn test_base_url_to_host_root() {
|
||
|
|
assert_eq!(
|
||
|
|
base_url_to_host_root("http://localhost:11434/v1"),
|
||
|
|
"http://localhost:11434"
|
||
|
|
);
|
||
|
|
assert_eq!(
|
||
|
|
base_url_to_host_root("http://localhost:11434"),
|
||
|
|
"http://localhost:11434"
|
||
|
|
);
|
||
|
|
assert_eq!(
|
||
|
|
base_url_to_host_root("http://localhost:11434/"),
|
||
|
|
"http://localhost:11434"
|
||
|
|
);
|
||
|
|
}
|
||
|
|
}
|