#[ allow( clippy::missing_inline_in_public_items ) ]
mod private
{
use super::super::core::orphan::*;
use serde::{ Serialize, Deserialize };
use std::collections::HashMap;
#[ derive( Debug, Clone, Serialize, Deserialize ) ]
pub struct EnhancedModelDetails
{
pub model_id : String,
pub display_name : String,
pub description : String,
pub version : Option< String >,
pub release_date : Option< String >,
pub architecture : Option< String >,
pub training_cutoff : Option< String >,
pub pricing : Option< ModelPricing >,
pub capabilities : EnhancedModelCapabilities,
pub context_window : ContextWindowDetails,
pub lifecycle : ModelLifecycle,
}
#[ derive( Debug, Clone, Serialize, Deserialize ) ]
#[ allow( clippy::struct_excessive_bools ) ]
pub struct EnhancedModelCapabilities
{
pub supports_function_calling : bool,
pub supports_vision : bool,
pub supports_multimodal_input : bool,
pub supports_streaming : bool,
pub supports_system_prompts : bool,
pub limitations : HashMap< String, String >,
pub performance_profile : PerformanceProfile,
}
#[ derive( Debug, Clone, Serialize, Deserialize ) ]
pub struct PerformanceProfile
{
pub latency_category : Option< String >,
pub throughput_category : Option< String >,
pub cost_category : Option< String >,
}
#[ derive( Debug, Clone, Serialize, Deserialize ) ]
pub struct ContextWindowDetails
{
pub max_context_tokens : u32,
pub max_output_tokens : u32,
pub token_breakdown : TokenBreakdown,
}
#[ derive( Debug, Clone, Serialize, Deserialize ) ]
pub struct TokenBreakdown
{
pub system_prompt_tokens : u32,
pub conversation_tokens : u32,
pub tool_definition_tokens : u32,
}
#[ derive( Debug, Clone, Serialize, Deserialize ) ]
pub struct ModelLifecycle
{
pub status : String,
pub is_deprecated : bool,
pub release_date : Option< String >,
pub deprecation_date : Option< String >,
pub end_of_life_date : Option< String >,
pub replacement_model : Option< String >,
pub migration_guide : Vec< String >,
pub version_compatibility : VersionCompatibility,
}
#[ derive( Debug, Clone, Serialize, Deserialize ) ]
pub struct VersionCompatibility
{
pub supported_api_versions : Vec< String >,
}
#[ derive( Debug, Clone ) ]
pub struct ModelComparison
{
pub model_a : String,
pub model_b : String,
pub capability_differences : Vec< String >,
pub cost_comparison : CostComparison,
pub performance_comparison : PerformanceComparison,
pub use_case_recommendations : Vec< String >,
}
#[ derive( Debug, Clone ) ]
pub struct CostComparison
{
pub cost_ratio : f64,
pub cost_analysis : Vec< String >,
}
#[ derive( Debug, Clone ) ]
pub struct PerformanceComparison
{
pub latency_ratio : f64,
pub quality_score_diff : f64,
}
#[ derive( Debug, Clone ) ]
pub struct FilteredModel
{
pub model_id : String,
pub supports_vision : bool,
pub context_length : u32,
pub is_deprecated : bool,
}
#[ derive( Debug, Clone ) ]
pub struct ModelSearchResult
{
pub model_id : String,
pub name : String,
pub description : String,
pub relevance_score : f64,
}
}
crate::mod_interface!
{
exposed use EnhancedModelDetails;
exposed use EnhancedModelCapabilities;
exposed use PerformanceProfile;
exposed use ContextWindowDetails;
exposed use TokenBreakdown;
exposed use ModelLifecycle;
exposed use VersionCompatibility;
exposed use ModelComparison;
exposed use CostComparison;
exposed use PerformanceComparison;
exposed use FilteredModel;
exposed use ModelSearchResult;
}