benchmark_hash/
benchmark_hash.rs1use manx_cli::rag::benchmarks::{benchmark_provider, print_benchmark_results, BenchmarkTestData};
4use manx_cli::rag::providers::hash::HashProvider;
5
6#[tokio::main]
7async fn main() -> Result<(), Box<dyn std::error::Error>> {
8 println!("š„ Manx Embedding Provider Benchmarks");
9 println!("=====================================\n");
10
11 let dimensions = vec![128, 256, 384, 512, 768];
13 let test_data = BenchmarkTestData::new_default();
14 let extended_data = BenchmarkTestData::extended();
15
16 println!("š Testing Hash Provider with Different Dimensions");
17 println!(
18 "Test Data: {} texts with {} similarity pairs\n",
19 test_data.texts.len(),
20 test_data.semantic_pairs.len()
21 );
22
23 let mut results = Vec::new();
24
25 for dim in &dimensions {
26 let provider = HashProvider::new(*dim);
27 let result = benchmark_provider(&provider, &test_data).await?;
28 results.push(result);
29 }
30
31 print_benchmark_results(&results);
32
33 println!("\nš Extended Dataset Benchmark (Hash-384)");
34 println!(
35 "Extended Data: {} texts with {} similarity pairs\n",
36 extended_data.texts.len(),
37 extended_data.semantic_pairs.len()
38 );
39
40 let provider_384 = HashProvider::new(384);
41 let extended_result = benchmark_provider(&provider_384, &extended_data).await?;
42 print_benchmark_results(&[extended_result]);
43
44 println!("\nā
Benchmark Complete!");
45 println!("š” Next: Compare with ONNX-based embeddings for quality improvements");
46
47 Ok(())
48}