1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
//! Multi-dimensional Quality Scoring Framework for RuvLLM
//!
//! This module provides a comprehensive quality scoring system for evaluating
//! LLM-generated content across multiple dimensions including schema compliance,
//! semantic coherence, diversity, temporal realism, and uniqueness.
//!
//! ## Architecture
//!
//! ```text
//! +-------------------+ +-------------------+
//! | GenerationResult |---->| QualityScoringEngine |
//! | | | |
//! +-------------------+ | - score_generation|
//! | - track_quality |
//! | - recommendations |
//! +--------+----------+
//! |
//! +-------------------------+-------------------------+
//! | | |
//! v v v
//! +--------+--------+ +----------+---------+ +---------+--------+
//! | CoherenceValidator | | DiversityAnalyzer | | SchemaValidator |
//! | - semantic_check | | - diversity_calc | | - json_validate |
//! | - contradiction_detect| | - mode_collapse_detect| | - type_check |
//! +---------------------+ +---------------------+ +------------------+
//! ```
//!
//! ## Usage
//!
//! ```rust,ignore
//! use ruvllm::quality::{
//! QualityScoringEngine, QualityMetrics, QualityWeights,
//! CoherenceValidator, DiversityAnalyzer, JsonSchemaValidator,
//! };
//!
//! // Create scoring engine with custom weights
//! let weights = QualityWeights {
//! schema_compliance: 0.25,
//! semantic_coherence: 0.25,
//! diversity: 0.20,
//! temporal_realism: 0.15,
//! uniqueness: 0.15,
//! };
//! let engine = QualityScoringEngine::with_weights(weights);
//!
//! // Score a generation result
//! let metrics = engine.score_generation(&generation_result)?;
//! println!("Composite score: {:.2}", metrics.composite_score);
//!
//! // Get improvement recommendations
//! let recommendations = engine.improvement_recommendations(&metrics);
//! for rec in recommendations {
//! println!("Recommendation: {}", rec);
//! }
//!
//! // Track quality over time
//! engine.track_quality_over_time(&metrics);
//! let trends = engine.get_quality_trends(100);
//! ```
//!
//! ## Quality Dimensions
//!
//! | Dimension | Description | Range |
//! |-----------|-------------|-------|
//! | Schema Compliance | Validates structure against JSON schema | 0.0 - 1.0 |
//! | Semantic Coherence | Logical consistency and flow | 0.0 - 1.0 |
//! | Diversity | Variation in generated content | 0.0 - 1.0 |
//! | Temporal Realism | Time-series validity (if applicable) | 0.0 - 1.0 |
//! | Uniqueness | Non-duplicate content detection | 0.0 - 1.0 |
//!
//! ## Visualization
//!
//! The module provides helpers for visualizing quality trends:
//!
//! ```rust,ignore
//! // Get ASCII visualization
//! let viz = engine.visualize_trends(50);
//! println!("{}", viz);
//!
//! // Export metrics for external visualization
//! let json = engine.export_metrics_json()?;
//! ```
// Re-exports
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;