pub mod bedrock;
pub mod exact;
pub mod fuzzy;
pub mod issue_type_tier;
pub mod jira_project_tier;
pub mod llm;
pub mod override_tier;
pub mod regex_tier;
use serde::{Deserialize, Serialize};
use crate::classify::taxonomy::TopLevelCategory;
use crate::core::models::ClassificationMethod;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct ClassificationResult {
pub category: String,
pub subcategory: Option<String>,
#[serde(default)]
pub top_level: Option<TopLevelCategory>,
pub confidence: f64,
pub method: ClassificationMethod,
pub ticket_id: Option<String>,
}
impl ClassificationResult {
pub fn unclassified() -> Self {
Self {
category: "uncategorized".to_string(),
subcategory: None,
top_level: Some(TopLevelCategory::Unknown),
confidence: 0.0,
method: ClassificationMethod::FuzzyMatch,
ticket_id: None,
}
}
}