use serde::{Deserialize, Serialize};
use std::collections::HashMap;
use chrono::{DateTime, Utc};
use uuid::Uuid;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Hash)]
pub enum ContextType {
Query,
User,
Task,
Temporal,
Interactive,
Domain,
Session,
Geographic,
Device,
Environmental,
Social,
Cultural,
Linguistic,
Semantic,
Syntactic,
Pragmatic,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum AdaptationStrategy {
None,
Linear,
Attention,
MLP,
Transformer,
MixtureOfExperts,
DynamicRouting,
MetaLearning,
ReinforcementLearning,
ContinualLearning,
TransferLearning,
FewShotLearning,
ZeroShotLearning,
SelfSupervisedLearning,
ContrastiveLearning,
MultiTaskLearning,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum ContextFusionMethod {
Concatenation,
Addition,
Multiplication,
WeightedAverage,
Attention,
Gating,
BilinearPooling,
CompactBilinearPooling,
MultimodalCompactBilinearPooling,
LowRankBilinearPooling,
Hierarchical,
CrossAttention,
SelfAttention,
MultiHeadAttention,
TransformerFusion,
GraphFusion,
DynamicFusion,
LearnedFusion,
ModularFusion,
AdaptiveFusion,
ContextualFusion,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum FeedbackAggregation {
Average,
RecencyWeighted,
ConfidenceWeighted,
ExponentialMovingAverage,
AttentionBased,
LearnedAggregation,
HierarchicalAggregation,
ContextualAggregation,
DynamicAggregation,
MultiScaleAggregation,
TemporalAggregation,
AdaptiveAggregation,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum QueryIntent {
Informational,
Navigational,
Transactional,
Comparative,
Temporal,
Spatial,
Analytical,
Creative,
Factual,
Opinion,
Procedural,
Causal,
Hypothetical,
Definitional,
Classification,
Recommendation,
Troubleshooting,
Exploratory,
Confirmatory,
Other,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum QueryComplexity {
Simple,
Medium,
Complex,
VeryComplex,
Expert,
Research,
Ambiguous,
MultiFaceted,
Interdisciplinary,
OpenEnded,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum ExpertiseLevel {
Beginner,
Intermediate,
Advanced,
Expert,
Professional,
Academic,
Research,
DomainExpert,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum DetailLevel {
Minimal,
Basic,
Moderate,
Comprehensive,
Exhaustive,
ContextDependent,
Adaptive,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum UserFeedback {
ThumbsUpDown(bool),
StarRating(u8),
RelevanceScore(f64),
TextFeedback(String),
ClickThrough(bool),
DwellTime(f64),
BounceRate(f64),
ConversionRate(f64),
Custom(HashMap<String, serde_json::Value>),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum TaskType {
InformationRetrieval,
QuestionAnswering,
TextClassification,
SentimentAnalysis,
NamedEntityRecognition,
RelationExtraction,
Summarization,
Translation,
TextGeneration,
DialogueSystems,
RecommendationSystems,
SearchRanking,
ContentModeration,
FactChecking,
KnowledgeGraphCompletion,
SemanticParsing,
TextSimilarity,
DocumentClustering,
TopicModeling,
AnomalyDetection,
TrendAnalysis,
TimeSeriesForecasting,
ImageCaptioning,
VisualQuestionAnswering,
CrossModalRetrieval,
MultimodalClassification,
CodeGeneration,
CodeCompletion,
BugDetection,
TestGeneration,
DocumentationGeneration,
AcademicResearch,
LiteratureReview,
PatentAnalysis,
LegalDocumentAnalysis,
MedicalDiagnosis,
DrugDiscovery,
FinancialAnalysis,
RiskAssessment,
FraudDetection,
MarketAnalysis,
CustomerSegmentation,
Personalization,
ContentRecommendation,
ProductRecommendation,
NewsRecommendation,
MusicRecommendation,
VideoRecommendation,
BookRecommendation,
JobRecommendation,
TravelRecommendation,
RestaurantRecommendation,
MovieRecommendation,
EcommerceSearch,
AcademicSearch,
EnterpriseSearch,
WebSearch,
ImageSearch,
VideoSearch,
AudioSearch,
CodeSearch,
Custom(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum TimePeriod {
RealTime,
Recent,
Today,
ThisWeek,
ThisMonth,
ThisQuarter,
ThisYear,
LastWeek,
LastMonth,
LastQuarter,
LastYear,
Historical,
Seasonal,
Cyclic,
Trending,
Custom { start: DateTime<Utc>, end: DateTime<Utc> },
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum TrendDirection {
Increasing,
Decreasing,
Stable,
Volatile,
Seasonal,
Cyclic,
None,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum AdaptationType {
Query,
User,
Task,
Temporal,
Interactive,
Domain,
CrossDomain,
MultiTask,
Continual,
Personalization,
Contextual,
Hybrid,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum ProcessingStrategy {
Eager,
Lazy,
Selective,
Adaptive,
Hierarchical,
Parallel,
Sequential,
Pipelined,
Streaming,
Batch,
RealTime,
Offline,
}