pub mod diagnostics;
mod embedder;
mod embedding;
mod error;
pub mod quant;
pub use embedder::{Embedder, EmbeddingRequest, ModelIdentity, ResourceInput, VideoFrame};
pub use embedding::{Dimension, Embedding, cosine_similarity, dot_product, normalize};
pub use error::{Error, Result};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "lowercase")]
#[non_exhaustive]
pub enum Modality {
Document,
Text,
Image,
Audio,
Video,
}
impl std::fmt::Display for Modality {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(match self {
Modality::Document => "document",
Modality::Text => "text",
Modality::Image => "image",
Modality::Audio => "audio",
Modality::Video => "video",
})
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[non_exhaustive]
pub enum EmbeddingTask {
SearchQuery,
SearchDocument,
Classification,
Clustering,
CodeRetrieval,
FactChecking,
QuestionAnswering,
SentenceSimilarity,
}