use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ModelInfo {
pub id: String,
pub owned_by: Option<String>,
pub context_length: Option<u32>,
pub display_name: Option<String>,
}
impl ModelInfo {
pub fn new(id: impl Into<String>) -> Self {
Self {
id: id.into(),
owned_by: None,
context_length: None,
display_name: None,
}
}
}
#[derive(Deserialize)]
pub(crate) struct OpenAIModelList {
pub data: Vec<OpenAIModelEntry>,
}
#[derive(Deserialize)]
pub(crate) struct OpenAIModelEntry {
pub id: String,
pub owned_by: Option<String>,
}
impl From<OpenAIModelEntry> for ModelInfo {
fn from(e: OpenAIModelEntry) -> Self {
Self {
id: e.id,
owned_by: e.owned_by,
context_length: None,
display_name: None,
}
}
}