Skip to main content

NlpModel

Trait NlpModel 

Source
pub trait NlpModel: ModelInfo {
    // Required methods
    fn analyze<'life0, 'life1, 'async_trait>(
        &'life0 self,
        requests: Vec<NlpRequest<'life1>>,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<NlpResult>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn supported_tasks(&self) -> NlpTasks;

    // Provided methods
    fn label_maps(&self) -> Option<&NlpLabelMaps> { ... }
    fn warmup<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: Sync + 'async_trait,
             'life0: 'async_trait { ... }
}
Expand description

A multi-head structured-NLP model.

§Canonical default model

The reference implementation is dragonscale-ai/kniv-deberta-nlp-base-en-xsmall: a DeBERTa-v3-xsmall multi-head cascade producing POS / NER / DEP / SRL / CLS in a single forward pass. It will ship as the canonical nlp/default catalog alias once the local/onnx provider gains an NlpModel implementation in a follow-up release.

Tagsets used by the reference model:

  • POS: Universal Dependencies English EWT (17 classes)
  • NER: OntoNotes (18 entity types)
  • DEP: Universal Dependencies English EWT
  • SRL: PropBank (42 classes)
  • CLS: 8 dialog acts (internal dataset)

Language: English only. Maximum input: 128 tokens — provider-side chunking is the implementation’s responsibility; the trait contract keeps token offsets stable in whole-document UTF-8 byte coordinates regardless of internal chunking.

Required Methods§

Source

fn analyze<'life0, 'life1, 'async_trait>( &'life0 self, requests: Vec<NlpRequest<'life1>>, ) -> Pin<Box<dyn Future<Output = Result<Vec<NlpResult>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Analyze a batch of texts, returning one NlpResult per request.

§Errors

Returns an error if a requested task is not in supported_tasks, or if the provider fails internally.

Source

fn supported_tasks(&self) -> NlpTasks

Heads this model can populate. Callers may request a subset via NlpRequest::tasks.

Provided Methods§

Source

fn label_maps(&self) -> Option<&NlpLabelMaps>

The label vocabularies this model decodes against, if it exposes them.

Returns Some for models with a fixed, introspectable label set (e.g. the ONNX cascade), letting callers map labels to class ids and read SpeechAct::scores against NlpLabelMaps::cls. The default is None for models that do not expose vocabularies (e.g. remote or mock).

Source

fn warmup<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait,

Optional warmup hook. The default is a no-op.

§Errors

Returns an error if the underlying model fails to initialize.

Implementors§