An intent matching pipeline for OpenVoiceOS (OVOS), powered by the Model2Vec model for intent classification.
This plugin uses a pretrained Model2Vec model to classify natural language utterances into intent labels registered with the system (Adapt, Padatious, and plugin-specific labels). It only considers intents from loaded skills and ignores any labels from unregistered intents. This pipeline is ideal for use cases where other deterministic engines fail to provide a high-confidence match.
- ✅ Powered by Model2Vec for high-quality intent classification
- ✅ Plug-and-play integration with OVOS pipelines
- ✅ Model2Vec trained on GitLocalize exports
- ✅ English models in various sizes, distilled from Potion
- ✅ Multilingual model, distilled from LaBSE
- ✅ Syncs Adapt and Padatious intents dynamically at runtime
- ✅ Only considers intents from loaded skills, ignoring unregistered labels
💡 english models size ranges from 8MB to 150MB, the multilingual model (default) is over 500MB
You can install the plugin via pip:
pip install ovos-m2v-pipelineIn your mycroft.conf:
{
"intents": {
"ovos-m2v-pipeline": {
"model": "Jarbas/ovos-model2vec-intents-LaBSE",
"conf_high": 0.7,
"conf_medium": 0.5,
"conf_low": 0.15,
"ignore_intents": []
}
}
}model: Path to your pretrained Model2Vec model or huggingface repo.conf_xxx: Minimum confidence threshold for intent matching.ignore_intents: List of intents to ignore during matching.prototype_strategy: Scoring strategy for prototype mode ("max_over_all"default — back-compatible). See docs/strategies.md.prototype_top_k: Top-k cosines averaged by thetop_k_meanstrategy (default3).prototype_tau: Softmax temperature for thesoftmax_weightedstrategy (default0.1).
⚠️ The Model2Vec model is pretrained based on GitLocalize exports and cannot learn new skills dynamically.
The Model2VecIntentPipeline class integrates with the OVOS intent system. It:
- Receives an utterance (text).
- Predicts intent labels using the pretrained Model2Vec model.
- Filters out intents that are not part of the loaded skills.
- Returns a match for the highest-confidence intent from the list of valid intents.
- Tune
min_confto control the confidence threshold for intent matching. - Use the
ignore_intentslist to filter out specific problematic intent from predictions. - Syncing of Adapt and Padatious intents is done automatically at runtime via the OVOS message bus.
💡 pre-trained models available in this huggingface collection ovos-model2vec-intents
This project is licensed under the Apache 2.0 License.
Originally an experimental research project by TigreGoticoLda, polished and donated to OpenVoiceOS as part of the NLnet NGI0 Commons Fund under grant agreement No 101135429.
