31 lines
1.0 KiB
Rust
31 lines
1.0 KiB
Rust
use crate::models::common::{AiFeature, AiModelType, Modality, PricingUnit, Provider};
|
|
use chrono::{DateTime, Utc};
|
|
use serde::{Deserialize, Serialize};
|
|
use uuid::Uuid;
|
|
|
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, sqlx::FromRow)]
|
|
pub struct AiModel {
|
|
pub id: Uuid,
|
|
pub provider: Provider,
|
|
pub model_id: String,
|
|
pub name: String,
|
|
pub description: Option<String>,
|
|
pub model_type: AiModelType,
|
|
pub family: Option<String>,
|
|
pub version: Option<String>,
|
|
pub context_window: Option<i32>,
|
|
pub max_output_tokens: Option<i32>,
|
|
pub input_modalities: Vec<Modality>,
|
|
pub output_modalities: Vec<Modality>,
|
|
pub supported_features: Vec<AiFeature>,
|
|
pub pricing_unit: Option<PricingUnit>,
|
|
pub input_price_per_unit: Option<String>,
|
|
pub output_price_per_unit: Option<String>,
|
|
pub enabled: bool,
|
|
pub deprecated: bool,
|
|
pub released_at: Option<DateTime<Utc>>,
|
|
pub created_at: DateTime<Utc>,
|
|
pub updated_at: DateTime<Utc>,
|
|
pub deleted_at: Option<DateTime<Utc>>,
|
|
}
|