Skip to main content

LanguageModelMiddleware

Trait LanguageModelMiddleware 

Source
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§

Source

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

Rewrites the call options before the call.

Source

fn wrap_generate<'a>( &'a self, options: CallOptions, next: GenerateNext<'a>, _ctx: MiddlewareContext<'a>, ) -> BoxFuture<'a, Result<GenerateResult, ProviderError>>

Wraps do_generate.

Source

fn wrap_stream<'a>( &'a self, options: CallOptions, next: StreamNext<'a>, _ctx: MiddlewareContext<'a>, ) -> BoxFuture<'a, Result<StreamResult, ProviderError>>

Wraps do_stream.

Source

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

Overrides the provider id reported by the wrapped model.

Source

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

Overrides the model id reported by the wrapped model.

Source

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".

Implementors§