xz-embed 0.1.0

Text embedding and vector storage abstraction layer
Documentation
use xz_embed::*;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut mock = MockEmbedder::new(4, 32);
    mock.set_output(vec![
        vec![0.1, 0.2, 0.3, 0.4],
        vec![0.5, 0.6, 0.7, 0.8],
        vec![0.9, 1.0, 0.1, 0.2],
    ]);

    let texts = vec![
        "Rust is a systems programming language.",
        "Python is great for data science.",
        "Go is designed for concurrency.",
    ];
    let text_refs: Vec<&str> = texts.iter().copied().collect();

    let vectors = mock.embed(&text_refs).await?;
    println!("Generated {} vectors, each with {} dimensions", vectors.len(), mock.dimensions());

    for (i, (text, vec)) in texts.iter().zip(vectors.iter()).enumerate() {
        println!("Text {}: {:?}... → [{:.3}, ...]", i, &text[..30], vec[0]);
    }

    Ok(())
}