oxirs_embed/
enterprise_knowledge_config.rs1#[derive(Debug, Clone)]
5pub struct EnterpriseConfig {
6 pub max_products: usize,
8 pub max_employees: usize,
10 pub max_customers: usize,
12 pub product_recommendation_refresh_hours: u64,
14 pub skill_analysis_interval_hours: u64,
16 pub market_analysis_interval_hours: u64,
18 pub enable_real_time_customer_tracking: bool,
20 pub min_interaction_threshold: u32,
22 pub embedding_dimension: usize,
24 pub recommendation_config: RecommendationConfig,
26}
27
28impl Default for EnterpriseConfig {
29 fn default() -> Self {
30 Self {
31 max_products: 500_000,
32 max_employees: 50_000,
33 max_customers: 1_000_000,
34 product_recommendation_refresh_hours: 6,
35 skill_analysis_interval_hours: 24,
36 market_analysis_interval_hours: 12,
37 enable_real_time_customer_tracking: true,
38 min_interaction_threshold: 3,
39 embedding_dimension: 256,
40 recommendation_config: RecommendationConfig::default(),
41 }
42 }
43}
44
45#[derive(Debug, Clone)]
47pub struct RecommendationConfig {
48 pub num_recommendations: usize,
50 pub similarity_threshold: f64,
52 pub diversity_factor: f64,
54 pub enable_collaborative_filtering: bool,
56 pub enable_content_based_filtering: bool,
58 pub enable_hybrid: bool,
60 pub cold_start_strategy: ColdStartStrategy,
62}
63
64impl Default for RecommendationConfig {
65 fn default() -> Self {
66 Self {
67 num_recommendations: 10,
68 similarity_threshold: 0.3,
69 diversity_factor: 0.2,
70 enable_collaborative_filtering: true,
71 enable_content_based_filtering: true,
72 enable_hybrid: true,
73 cold_start_strategy: ColdStartStrategy::PopularityBased,
74 }
75 }
76}
77
78#[derive(Debug, Clone)]
80pub enum ColdStartStrategy {
81 PopularityBased,
82 ContentBased,
83 DemographicBased,
84 RandomSampling,
85}