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§
Sourcefn transform_params<'a>(
&'a self,
options: EmbedOptions,
_ctx: EmbeddingMiddlewareContext<'a>,
) -> BoxFuture<'a, Result<EmbedOptions, ProviderError>>
fn transform_params<'a>( &'a self, options: EmbedOptions, _ctx: EmbeddingMiddlewareContext<'a>, ) -> BoxFuture<'a, Result<EmbedOptions, ProviderError>>
Rewrites the embed options before the call.
Sourcefn wrap_embed<'a>(
&'a self,
options: EmbedOptions,
next: EmbedNext<'a>,
_ctx: EmbeddingMiddlewareContext<'a>,
) -> BoxFuture<'a, Result<EmbedResult, ProviderError>>
fn wrap_embed<'a>( &'a self, options: EmbedOptions, next: EmbedNext<'a>, _ctx: EmbeddingMiddlewareContext<'a>, ) -> BoxFuture<'a, Result<EmbedResult, ProviderError>>
Wraps do_embed.
Sourcefn override_provider(
&self,
_model: &dyn DynEmbeddingModel,
) -> Option<ProviderId>
fn override_provider( &self, _model: &dyn DynEmbeddingModel, ) -> Option<ProviderId>
Overrides the provider id reported by the wrapped model.
Sourcefn override_model_id(&self, _model: &dyn DynEmbeddingModel) -> Option<ModelId>
fn override_model_id(&self, _model: &dyn DynEmbeddingModel) -> Option<ModelId>
Overrides the model id reported by the wrapped model.
Sourcefn max_embeddings_per_call(
&self,
model: &dyn DynEmbeddingModel,
) -> Option<usize>
fn max_embeddings_per_call( &self, model: &dyn DynEmbeddingModel, ) -> Option<usize>
The batch limit reported by the wrapper; defaults to the inner value.
Sourcefn max_input_bytes_per_call(
&self,
model: &dyn DynEmbeddingModel,
) -> Option<usize>
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.
Sourcefn supports_parallel_calls(&self, model: &dyn DynEmbeddingModel) -> bool
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".