Skip to main content

fathomdb_embedder/
lib.rs

1use fathomdb_embedder_api::{Embedder, EmbedderError, EmbedderIdentity, Vector};
2
3#[derive(Clone, Debug)]
4pub struct NoopEmbedder {
5    identity: EmbedderIdentity,
6}
7
8impl Default for NoopEmbedder {
9    fn default() -> Self {
10        Self { identity: EmbedderIdentity::new("fathomdb-noop", "0.6.0-scaffold", 384) }
11    }
12}
13
14impl Embedder for NoopEmbedder {
15    fn identity(&self) -> EmbedderIdentity {
16        self.identity.clone()
17    }
18
19    fn embed(&self, _input: &str) -> Result<Vector, EmbedderError> {
20        let mut vector = vec![0.0_f32; self.identity.dimension as usize];
21        if let Some(first) = vector.first_mut() {
22            *first = 1.0;
23        }
24        Ok(vector)
25    }
26}