use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct RegisterRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub model_name: Option<String>,
pub addr: String,
}
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
pub enum ResponseStatus {
Success,
Warning,
Error,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct ServerResponse {
pub status: ResponseStatus,
pub message: String,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct ModelExtractPayload {
pub model: Option<String>,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct ProxyServerInfo {
pub model_name: String,
pub addr: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub avg_response_time_ms: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub total_requests: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub recent_failures: Option<u64>,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct TestRequest {
pub addr: String,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct ModelsListResponse {
pub object: String,
pub data: Vec<ModelInfo>,
}
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct ModelInfo {
pub id: String,
pub object: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub created: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub owned_by: Option<String>,
}