pub trait LanguageModelMiddleware:
Send
+ Sync
+ 'static {
// Provided methods
fn transform_params<'a>(
&'a self,
options: CallOptions,
_ctx: MiddlewareContext<'a>,
) -> BoxFuture<'a, Result<CallOptions, ProviderError>> { ... }
fn wrap_generate<'a>(
&'a self,
options: CallOptions,
next: GenerateNext<'a>,
_ctx: MiddlewareContext<'a>,
) -> BoxFuture<'a, Result<GenerateResult, ProviderError>> { ... }
fn wrap_stream<'a>(
&'a self,
options: CallOptions,
next: StreamNext<'a>,
_ctx: MiddlewareContext<'a>,
) -> BoxFuture<'a, Result<StreamResult, ProviderError>> { ... }
fn override_provider(
&self,
_model: &dyn DynLanguageModel,
) -> Option<ProviderId> { ... }
fn override_model_id(
&self,
_model: &dyn DynLanguageModel,
) -> Option<ModelId> { ... }
fn override_supported_urls<'a>(
&'a self,
_model: &'a dyn DynLanguageModel,
) -> Option<BoxFuture<'a, SupportedUrls>> { ... }
}Expand description
Intercepts language model calls. Every method has a pass-through default.
Provided Methods§
Sourcefn transform_params<'a>(
&'a self,
options: CallOptions,
_ctx: MiddlewareContext<'a>,
) -> BoxFuture<'a, Result<CallOptions, ProviderError>>
fn transform_params<'a>( &'a self, options: CallOptions, _ctx: MiddlewareContext<'a>, ) -> BoxFuture<'a, Result<CallOptions, ProviderError>>
Rewrites the call options before the call.
Sourcefn wrap_generate<'a>(
&'a self,
options: CallOptions,
next: GenerateNext<'a>,
_ctx: MiddlewareContext<'a>,
) -> BoxFuture<'a, Result<GenerateResult, ProviderError>>
fn wrap_generate<'a>( &'a self, options: CallOptions, next: GenerateNext<'a>, _ctx: MiddlewareContext<'a>, ) -> BoxFuture<'a, Result<GenerateResult, ProviderError>>
Wraps do_generate.
Sourcefn wrap_stream<'a>(
&'a self,
options: CallOptions,
next: StreamNext<'a>,
_ctx: MiddlewareContext<'a>,
) -> BoxFuture<'a, Result<StreamResult, ProviderError>>
fn wrap_stream<'a>( &'a self, options: CallOptions, next: StreamNext<'a>, _ctx: MiddlewareContext<'a>, ) -> BoxFuture<'a, Result<StreamResult, ProviderError>>
Wraps do_stream.
Sourcefn override_provider(&self, _model: &dyn DynLanguageModel) -> Option<ProviderId>
fn override_provider(&self, _model: &dyn DynLanguageModel) -> Option<ProviderId>
Overrides the provider id reported by the wrapped model.
Sourcefn override_model_id(&self, _model: &dyn DynLanguageModel) -> Option<ModelId>
fn override_model_id(&self, _model: &dyn DynLanguageModel) -> Option<ModelId>
Overrides the model id reported by the wrapped model.
Sourcefn override_supported_urls<'a>(
&'a self,
_model: &'a dyn DynLanguageModel,
) -> Option<BoxFuture<'a, SupportedUrls>>
fn override_supported_urls<'a>( &'a self, _model: &'a dyn DynLanguageModel, ) -> Option<BoxFuture<'a, SupportedUrls>>
Overrides the supported URLs of the wrapped model.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".