test_nomic/
test_nomic.rs

1#[cfg(feature = "fastembed")]
2use ck_embed::create_embedder;
3
4fn main() {
5    #[cfg(not(feature = "fastembed"))]
6    {
7        println!("This example requires the 'fastembed' feature to be enabled.");
8        println!("Run with: cargo run --example test_nomic --features fastembed");
9        return;
10    }
11
12    #[cfg(feature = "fastembed")]
13    run_example();
14}
15
16#[cfg(feature = "fastembed")]
17fn run_example() {
18    println!("=== Testing Nomic Model ===");
19
20    println!("Attempting to create Nomic Embed Text V1.5 embedder...");
21
22    let result = create_embedder(Some("nomic-embed-text-v1.5"));
23
24    match result {
25        Ok(mut embedder) => {
26            println!("✅ Successfully created embedder: {}", embedder.id());
27            println!("   Dimensions: {}", embedder.dim());
28
29            let test_texts = vec!["hello world".to_string()];
30            println!("Testing embedding generation...");
31
32            match embedder.embed(&test_texts) {
33                Ok(embeddings) => {
34                    println!("✅ Successfully generated embeddings");
35                    println!(
36                        "   Shape: {} embeddings of {} dimensions",
37                        embeddings.len(),
38                        embeddings[0].len()
39                    );
40                }
41                Err(e) => {
42                    println!("❌ Failed to generate embeddings: {}", e);
43                }
44            }
45        }
46        Err(e) => {
47            println!("❌ Failed to create Nomic embedder: {}", e);
48            println!("   Error details: {:?}", e);
49
50            println!("\n--- Trying alternative model names ---");
51
52            // Try different variations
53            let alternatives = [
54                "nomic-embed-text-v1",
55                "NomicEmbedTextV15",
56                "NomicEmbedTextV1",
57            ];
58
59            for alt in alternatives {
60                println!("Trying: {}", alt);
61                match create_embedder(Some(alt)) {
62                    Ok(_) => println!("  ✅ {} works!", alt),
63                    Err(e) => println!("  ❌ {} failed: {}", alt, e),
64                }
65            }
66        }
67    }
68
69    println!("\n--- Testing working BGE model for comparison ---");
70    match create_embedder(Some("BAAI/bge-small-en-v1.5")) {
71        Ok(embedder) => println!("✅ BGE model works: {} dims", embedder.dim()),
72        Err(e) => println!("❌ Even BGE failed: {}", e),
73    }
74}