asimov/models/capabilities/
embed.rs

1use crate::{error::Result, tokenizers::Tokenizer, Input};
2use async_trait::async_trait;
3
4/// Trait that defines the behavior of embedding models.
5#[async_trait]
6pub trait Embed: Send + Sync {
7    type Tokenizer: Tokenizer;
8    const DIM: u32;
9
10    /// Embed an object that implements the [`Embeddable`] trait.
11    async fn embed<I: Input + ?Sized>(&self, input: &I) -> Result<Vec<f32>>;
12}