semtree-embed 0.2.1

Embedding trait and backends (fastembed, openai)
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
use async_trait::async_trait;

use crate::{EmbedError, Embedding};

#[async_trait]
pub trait Embedder: Send + Sync {
    async fn embed(&self, texts: &[&str]) -> Result<Vec<Embedding>, EmbedError>;

    async fn embed_one(&self, text: &str) -> Result<Embedding, EmbedError> {
        self.embed(&[text]).await.map(|mut v| v.remove(0))
    }
}