mod vector_engine;
mod weight_model;
pub use vector_engine::{SearchOptions, SearchResult, VectorSearchEngine};
pub use weight_model::{LayerWeights, weights_for_intent};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub enum QueryIntentType {
EntityLookup,
Factual,
Temporal,
Relational,
Search,
General,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TimeConstraint {
pub start: Option<String>,
pub end: Option<String>,
}
#[derive(Debug, Clone)]
pub struct EnhancedQueryIntent {
pub original_query: String,
pub rewritten_query: String,
pub keywords: Vec<String>,
pub entities: Vec<String>,
pub intent_type: QueryIntentType,
pub time_constraint: Option<TimeConstraint>,
}