use super::{EmbeddingBatchRequest, EmbeddingBatchResponse, EmbeddingProviderDescriptor};
use async_trait::async_trait;
use tokio_util::sync::CancellationToken;
#[async_trait]
pub trait EmbeddingProvider: Send + Sync {
fn descriptor(&self) -> EmbeddingProviderDescriptor;
async fn embed(
&self,
request: EmbeddingBatchRequest,
cancellation: CancellationToken,
) -> Result<EmbeddingBatchResponse, super::EmbeddingProviderError>;
}