use serde::Deserialize;
#[derive(Debug, Clone, Deserialize)]
pub struct EmbeddingModelInfo {
pub provider: String,
pub model: String,
pub dimension: u32,
pub description: String,
}
#[derive(Debug, Clone, Deserialize)]
pub struct EmbeddingModelListResponse {
pub models: Vec<EmbeddingModelInfo>,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_deserialize_embedding_model_list() {
let json = r#"{"models":[{"provider":"openai","model":"text-embedding-3-small","dimension":1536,"description":"OpenAI small"}]}"#;
let resp: EmbeddingModelListResponse = serde_json::from_str(json).unwrap();
assert_eq!(resp.models.len(), 1);
assert_eq!(resp.models[0].dimension, 1536);
}
}