milli: add Embedder::embed_one

This commit is contained in:
Louis Dureuil 2024-03-28 11:49:23 +01:00
parent 00c4ed3bc2
commit fabc9cf14a
No known key found for this signature in database
2 changed files with 17 additions and 1 deletions

View file

@ -237,6 +237,17 @@ impl Embedder {
}
}
pub fn embed_one(&self, text: String) -> std::result::Result<Embedding, EmbedError> {
let mut embeddings = self.embed(vec![text])?;
let embeddings = embeddings.pop().ok_or_else(EmbedError::missing_embedding)?;
Ok(if embeddings.iter().nth(1).is_some() {
tracing::warn!("Ignoring embeddings past the first one in long search query");
embeddings.iter().next().unwrap().to_vec()
} else {
embeddings.into_inner()
})
}
/// Embed multiple chunks of texts.
///
/// Each chunk is composed of one or multiple texts.