1use rust_embed::RustEmbed;
2use serde::Deserialize;
3
4#[derive(RustEmbed)]
5#[folder = "static/presets/"]
6struct PresetModels;
7
8#[derive(Debug, Deserialize, Clone)]
9pub struct ModelInfo {
10 pub id: String,
11 pub name: String,
12 pub description: String,
13}
14
15#[derive(Debug, Deserialize)]
16struct ModelList {
17 models: Vec<ModelInfo>,
18}
19
20pub fn load_presets(provider: &str) -> Vec<ModelInfo> {
22 let filename = format!("{}.toml", provider);
23
24 if let Some(content) = PresetModels::get(&filename)
25 && let Ok(data) = std::str::from_utf8(content.data.as_ref())
26 && let Ok(list) = toml::from_str::<ModelList>(data)
27 {
28 return list.models;
29 }
30
31 vec![]
32}