Skip to main content

EmbeddingModelMiddleware

Trait EmbeddingModelMiddleware 

Source
pub trait EmbeddingModelMiddleware:
    Send
    + Sync
    + 'static {
    // Provided methods
    fn transform_params<'a>(
        &'a self,
        options: EmbedOptions,
        _ctx: EmbeddingMiddlewareContext<'a>,
    ) -> BoxFuture<'a, Result<EmbedOptions, ProviderError>> { ... }
    fn wrap_embed<'a>(
        &'a self,
        options: EmbedOptions,
        next: EmbedNext<'a>,
        _ctx: EmbeddingMiddlewareContext<'a>,
    ) -> BoxFuture<'a, Result<EmbedResult, ProviderError>> { ... }
    fn override_provider(
        &self,
        _model: &dyn DynEmbeddingModel,
    ) -> Option<ProviderId> { ... }
    fn override_model_id(
        &self,
        _model: &dyn DynEmbeddingModel,
    ) -> Option<ModelId> { ... }
    fn max_embeddings_per_call(
        &self,
        model: &dyn DynEmbeddingModel,
    ) -> Option<usize> { ... }
    fn max_input_bytes_per_call(
        &self,
        model: &dyn DynEmbeddingModel,
    ) -> Option<usize> { ... }
    fn supports_parallel_calls(&self, model: &dyn DynEmbeddingModel) -> bool { ... }
}
Expand description

Intercepts embedding model calls. Every method has a pass-through default.

The limit methods receive the wrapped model and return the value the wrapper reports; their defaults forward the inner model’s values, so a layer overrides a limit by returning something else.

Provided Methods§

Source

fn transform_params<'a>( &'a self, options: EmbedOptions, _ctx: EmbeddingMiddlewareContext<'a>, ) -> BoxFuture<'a, Result<EmbedOptions, ProviderError>>

Rewrites the embed options before the call.

Source

fn wrap_embed<'a>( &'a self, options: EmbedOptions, next: EmbedNext<'a>, _ctx: EmbeddingMiddlewareContext<'a>, ) -> BoxFuture<'a, Result<EmbedResult, ProviderError>>

Wraps do_embed.

Source

fn override_provider( &self, _model: &dyn DynEmbeddingModel, ) -> Option<ProviderId>

Overrides the provider id reported by the wrapped model.

Source

fn override_model_id(&self, _model: &dyn DynEmbeddingModel) -> Option<ModelId>

Overrides the model id reported by the wrapped model.

Source

fn max_embeddings_per_call( &self, model: &dyn DynEmbeddingModel, ) -> Option<usize>

The batch limit reported by the wrapper; defaults to the inner value.

Source

fn max_input_bytes_per_call( &self, model: &dyn DynEmbeddingModel, ) -> Option<usize>

The input byte limit reported by the wrapper; defaults to the inner value.

Source

fn supports_parallel_calls(&self, model: &dyn DynEmbeddingModel) -> bool

Whether the wrapper allows concurrent calls; defaults to the inner value.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§