pub trait Classifier<S = ()>: Send + Sync {
// Required method
fn score<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
state: &'life1 mut S,
request: &'life2 mut Request,
driver: Option<&'life3 Driver>,
) -> Pin<Box<dyn Future<Output = Result<(Classification, Option<Response>)>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
// Provided method
fn routing_tier(&self, _selected_model: &str) -> Option<&'static str> { ... }
}Expand description
Scores targets from the current request and the composition’s state.
Required Methods§
Sourcefn score<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
state: &'life1 mut S,
request: &'life2 mut Request,
driver: Option<&'life3 Driver>,
) -> Pin<Box<dyn Future<Output = Result<(Classification, Option<Response>)>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn score<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
state: &'life1 mut S,
request: &'life2 mut Request,
driver: Option<&'life3 Driver>,
) -> Pin<Box<dyn Future<Output = Result<(Classification, Option<Response>)>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Score the classifier’s targets given the current state and request.
When present, driver lets a classifier offload model calls. It is None
when the classifier is evaluated outside an algorithm run.
request is borrowed mutably so a classifier may rewrite it in place — inject a
system prompt, drop tools, compact history. The edit is not scoped to this call:
later classifiers in the cascade score the rewritten request, and it is the
rewritten request that is finally sent to the selected model. Most classifiers
only read it.
Provided Methods§
Sourcefn routing_tier(&self, _selected_model: &str) -> Option<&'static str>
fn routing_tier(&self, _selected_model: &str) -> Option<&'static str>
Stable tier represented by selected_model, when this classifier defines one.