pub trait ModelRunner: Send + Sync {
// Required methods
fn card(&self) -> ModelCard;
fn infer(
&self,
cx: &mut Cx,
request: ModelRequest,
) -> Result<ModelResponse, Error>;
// Provided methods
fn infer_request(
&self,
cx: &mut Cx,
request: EvalRequest,
) -> Result<ModelResponse, Error> { ... }
fn infer_stream(
&self,
cx: &mut Cx,
request: ModelRequest,
sink: &mut dyn ModelEventSink,
) -> Result<ModelResponse, Error> { ... }
fn infer_stream_request(
&self,
cx: &mut Cx,
request: EvalRequest,
sink: &mut dyn ModelEventSink,
) -> Result<ModelResponse, Error> { ... }
fn bid(&self, _request: &ModelRequest) -> Result<ModelBid, Error> { ... }
}Expand description
Executable contract for a model backend or model-like runtime surface.
Required Methods§
Sourcefn infer(
&self,
cx: &mut Cx,
request: ModelRequest,
) -> Result<ModelResponse, Error>
fn infer( &self, cx: &mut Cx, request: ModelRequest, ) -> Result<ModelResponse, Error>
Executes one non-streaming inference request.
Provided Methods§
Sourcefn infer_request(
&self,
cx: &mut Cx,
request: EvalRequest,
) -> Result<ModelResponse, Error>
fn infer_request( &self, cx: &mut Cx, request: EvalRequest, ) -> Result<ModelResponse, Error>
Executes one non-streaming inference request with its full eval envelope.
Implementations that need the caller’s capability ceiling can override this method. The default keeps existing model-only runners compatible.
Sourcefn infer_stream(
&self,
cx: &mut Cx,
request: ModelRequest,
sink: &mut dyn ModelEventSink,
) -> Result<ModelResponse, Error>
fn infer_stream( &self, cx: &mut Cx, request: ModelRequest, sink: &mut dyn ModelEventSink, ) -> Result<ModelResponse, Error>
Executes one streaming inference request.
The default implementation falls back to Self::infer and emits a
synthesized final event.
Sourcefn infer_stream_request(
&self,
cx: &mut Cx,
request: EvalRequest,
sink: &mut dyn ModelEventSink,
) -> Result<ModelResponse, Error>
fn infer_stream_request( &self, cx: &mut Cx, request: EvalRequest, sink: &mut dyn ModelEventSink, ) -> Result<ModelResponse, Error>
Executes one streaming inference request with its full eval envelope.
The default preserves existing streaming behavior after decoding the model request from the envelope.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".