create_embedder

Function create_embedder 

Source
pub fn create_embedder(model_name: Option<&str>) -> Result<Box<dyn Embedder>>
Examples found in repository?
examples/test_nomic.rs (line 22)
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}