oxirs_vec/embeddings/
sentencetransformergenerator_traits.rs1use crate::Vector;
13use anyhow::Result;
14
15use super::functions::{AsAny, EmbeddingGenerator};
16use super::sentencetransformergenerator_type::SentenceTransformerGenerator;
17use super::types::{EmbeddableContent, EmbeddingConfig};
18
19impl EmbeddingGenerator for SentenceTransformerGenerator {
20 fn generate(&self, content: &EmbeddableContent) -> Result<Vector> {
21 let text = content.to_text();
22 self.generate_with_model(&text)
23 }
24 fn dimensions(&self) -> usize {
25 self.config.dimensions
26 }
27 fn config(&self) -> &EmbeddingConfig {
28 &self.config
29 }
30}
31
32impl AsAny for SentenceTransformerGenerator {
33 fn as_any(&self) -> &dyn std::any::Any {
34 self
35 }
36 fn as_any_mut(&mut self) -> &mut dyn std::any::Any {
37 self
38 }
39}