use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RevolutionaryChatConfig {
pub enable_unified_optimization: bool,
pub enable_advanced_statistics: bool,
pub enable_ai_conversation_analysis: bool,
pub enable_quantum_context_processing: bool,
pub enable_streaming_optimization: bool,
pub enable_advanced_memory_management: bool,
pub unified_config: UnifiedOptimizationConfig,
pub statistics_config: AdvancedStatisticsConfig,
pub conversation_analysis_config: ConversationAnalysisConfig,
pub performance_targets: ChatPerformanceTargets,
}
impl Default for RevolutionaryChatConfig {
fn default() -> Self {
Self {
enable_unified_optimization: true,
enable_advanced_statistics: true,
enable_ai_conversation_analysis: true,
enable_quantum_context_processing: true,
enable_streaming_optimization: true,
enable_advanced_memory_management: true,
unified_config: UnifiedOptimizationConfig::default(),
statistics_config: AdvancedStatisticsConfig::default(),
conversation_analysis_config: ConversationAnalysisConfig::default(),
performance_targets: ChatPerformanceTargets::default(),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UnifiedOptimizationConfig {
pub enable_cross_component_coordination: bool,
pub enable_adaptive_strategies: bool,
pub enable_ai_driven_optimization: bool,
pub optimization_frequency_ms: u64,
pub monitoring_window_size: usize,
pub coordination_strategy: CoordinationStrategy,
}
impl Default for UnifiedOptimizationConfig {
fn default() -> Self {
Self {
enable_cross_component_coordination: true,
enable_adaptive_strategies: true,
enable_ai_driven_optimization: true,
optimization_frequency_ms: 100,
monitoring_window_size: 1000,
coordination_strategy: CoordinationStrategy::AIControlled,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum CoordinationStrategy {
Independent,
Sequential,
Parallel,
Adaptive,
AIControlled,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AdvancedStatisticsConfig {
pub enable_conversation_quality_metrics: bool,
pub enable_conversation_prediction: bool,
pub enable_user_behavior_analysis: bool,
pub enable_performance_correlation: bool,
pub collection_window_minutes: u64,
pub historical_retention_days: u64,
pub significance_threshold: f64,
}
impl Default for AdvancedStatisticsConfig {
fn default() -> Self {
Self {
enable_conversation_quality_metrics: true,
enable_conversation_prediction: true,
enable_user_behavior_analysis: true,
enable_performance_correlation: true,
collection_window_minutes: 60,
historical_retention_days: 30,
significance_threshold: 0.95,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ConversationAnalysisConfig {
pub enable_semantic_flow_analysis: bool,
pub enable_emotional_state_tracking: bool,
pub enable_pattern_recognition: bool,
pub enable_intent_prediction: bool,
pub analysis_depth: u8,
pub pattern_window_size: usize,
pub prediction_confidence_threshold: f64,
}
impl Default for ConversationAnalysisConfig {
fn default() -> Self {
Self {
enable_semantic_flow_analysis: true,
enable_emotional_state_tracking: true,
enable_pattern_recognition: true,
enable_intent_prediction: true,
analysis_depth: 3,
pattern_window_size: 20,
prediction_confidence_threshold: 0.75,
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ChatPerformanceTargets {
pub target_response_time_ms: u64,
pub target_conversation_quality: f64,
pub target_user_satisfaction: f64,
pub target_memory_efficiency_mb: f64,
pub target_throughput_mps: f64,
}
impl Default for ChatPerformanceTargets {
fn default() -> Self {
Self {
target_response_time_ms: 2000,
target_conversation_quality: 0.85,
target_user_satisfaction: 0.9,
target_memory_efficiency_mb: 50.0,
target_throughput_mps: 100.0,
}
}
}