brainos_cortex/
presets.rs1#[derive(Debug, Clone, Copy)]
9pub struct Preset {
10 pub name: &'static str,
11 pub base_url: &'static str,
12}
13
14const PRESETS: &[Preset] = &[
15 Preset {
16 name: "openai",
17 base_url: "https://api.openai.com/v1",
18 },
19 Preset {
20 name: "openrouter",
21 base_url: "https://openrouter.ai/api/v1",
22 },
23 Preset {
24 name: "groq",
25 base_url: "https://api.groq.com/openai/v1",
26 },
27 Preset {
28 name: "deepseek",
29 base_url: "https://api.deepseek.com/v1",
30 },
31 Preset {
32 name: "together",
33 base_url: "https://api.together.xyz/v1",
34 },
35 Preset {
36 name: "gemini-compat",
37 base_url: "https://generativelanguage.googleapis.com/v1beta/openai",
38 },
39 Preset {
43 name: "nvidia",
44 base_url: "https://integrate.api.nvidia.com/v1",
45 },
46];
47
48pub fn resolve(name: &str) -> Option<&'static Preset> {
50 let needle = name.trim().to_ascii_lowercase();
51 PRESETS.iter().find(|p| p.name == needle)
52}
53
54pub fn names() -> impl Iterator<Item = &'static str> {
56 PRESETS.iter().map(|p| p.name)
57}
58
59#[cfg(test)]
60mod tests {
61 use super::*;
62
63 #[test]
64 fn resolves_known_presets() {
65 assert_eq!(
66 resolve("groq").map(|p| p.base_url),
67 Some("https://api.groq.com/openai/v1"),
68 );
69 assert_eq!(
70 resolve("OpenRouter").map(|p| p.base_url),
71 Some("https://openrouter.ai/api/v1"),
72 );
73 assert_eq!(
74 resolve(" deepseek ").map(|p| p.base_url),
75 Some("https://api.deepseek.com/v1"),
76 );
77 }
78
79 #[test]
80 fn unknown_preset_is_none() {
81 assert!(resolve("nonesuch").is_none());
82 }
83
84 #[test]
85 fn names_includes_all() {
86 let all: Vec<_> = names().collect();
87 assert!(all.contains(&"openai"));
88 assert!(all.contains(&"groq"));
89 assert!(all.contains(&"deepseek"));
90 assert!(all.contains(&"gemini-compat"));
91 assert!(all.contains(&"nvidia"));
92 }
93
94 #[test]
95 fn nvidia_preset_targets_integrate_api() {
96 assert_eq!(
99 resolve("nvidia").map(|p| p.base_url),
100 Some("https://integrate.api.nvidia.com/v1")
101 );
102 }
103}