use candding::Family;
use candding::ModelDescriptor;
use candding::Pooling;
use candding::TextEmbedding;
fn main() -> candding::Result<()> {
let mut descriptor = ModelDescriptor::new(
"sentence-transformers/all-MiniLM-L12-v2",
Family::Bert,
384,
Pooling::Mean,
);
descriptor.default_max_length = 128;
let model = TextEmbedding::builder(descriptor.id.clone())
.descriptor(descriptor)
.build()?;
let rows = model.embed(&["a sentence outside the registry"], None)?;
println!(
"dim {} norm {:.4}",
rows[0].len(),
rows[0].iter().map(|v| v * v).sum::<f32>().sqrt()
);
Ok(())
}