vtcode_core/llm/providers/ollama/
url.rs1pub fn is_openai_compatible_base_url(base_url: &str) -> bool {
6 base_url.trim_end_matches('/').ends_with("/v1")
7}
8
9pub fn base_url_to_host_root(base_url: &str) -> String {
12 let trimmed = base_url.trim_end_matches('/');
13 if trimmed.ends_with("/v1") {
14 trimmed
15 .trim_end_matches("/v1")
16 .trim_end_matches('/')
17 .to_string()
18 } else {
19 trimmed.to_string()
20 }
21}
22
23#[cfg(test)]
24mod tests {
25 use super::*;
26
27 #[test]
28 fn test_is_openai_compatible_base_url() {
29 assert!(is_openai_compatible_base_url("http://localhost:11434/v1"));
30 assert!(is_openai_compatible_base_url("https://api.ollama.com/v1/"));
31 assert!(!is_openai_compatible_base_url("http://localhost:11434"));
32 assert!(!is_openai_compatible_base_url("https://api.ollama.com/"));
33 }
34
35 #[test]
36 fn test_base_url_to_host_root() {
37 assert_eq!(
38 base_url_to_host_root("http://localhost:11434/v1"),
39 "http://localhost:11434"
40 );
41 assert_eq!(
42 base_url_to_host_root("http://localhost:11434"),
43 "http://localhost:11434"
44 );
45 assert_eq!(
46 base_url_to_host_root("http://localhost:11434/"),
47 "http://localhost:11434"
48 );
49 assert_eq!(
50 base_url_to_host_root("https://api.example.com/v1/"),
51 "https://api.example.com"
52 );
53 }
54}