feat: init
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
use crate::models::json_types::{AiModelCapabilityConfig, TypedJson};
|
||||
use chrono::{DateTime, Utc};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use uuid::Uuid;
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, sqlx::FromRow)]
|
||||
pub struct AiModelCapability {
|
||||
pub id: Uuid,
|
||||
pub ai_model_id: Uuid,
|
||||
pub capability: String,
|
||||
pub supported: bool,
|
||||
pub config: Option<TypedJson<AiModelCapabilityConfig>>,
|
||||
pub created_at: DateTime<Utc>,
|
||||
pub updated_at: DateTime<Utc>,
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
use crate::models::common::Status;
|
||||
use chrono::{DateTime, Utc};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use uuid::Uuid;
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, sqlx::FromRow)]
|
||||
pub struct AiModelHealth {
|
||||
pub id: Uuid,
|
||||
pub ai_model_id: Uuid,
|
||||
pub status: Status,
|
||||
pub latency_ms: Option<i32>,
|
||||
pub error_rate: Option<String>,
|
||||
pub last_error: Option<String>,
|
||||
pub checked_at: DateTime<Utc>,
|
||||
pub created_at: DateTime<Utc>,
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
use chrono::{DateTime, Utc};
|
||||
use serde::{Deserialize, Serialize};
|
||||
use uuid::Uuid;
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, sqlx::FromRow)]
|
||||
pub struct AiModelVersion {
|
||||
pub id: Uuid,
|
||||
pub ai_model_id: Uuid,
|
||||
pub version: String,
|
||||
pub provider_model_id: String,
|
||||
pub context_window: Option<i32>,
|
||||
pub max_output_tokens: Option<i32>,
|
||||
pub changelog: Option<String>,
|
||||
pub stable: bool,
|
||||
pub deprecated: bool,
|
||||
pub released_at: Option<DateTime<Utc>>,
|
||||
pub created_at: DateTime<Utc>,
|
||||
pub updated_at: DateTime<Utc>,
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
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>>,
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
pub mod ai_model_capabilities;
|
||||
pub mod ai_model_health;
|
||||
pub mod ai_model_versions;
|
||||
pub mod ai_models;
|
||||
|
||||
pub use ai_model_capabilities::AiModelCapability;
|
||||
pub use ai_model_health::AiModelHealth;
|
||||
pub use ai_model_versions::AiModelVersion;
|
||||
pub use ai_models::AiModel;
|
||||
Reference in New Issue
Block a user