ovos-core
ovos-core copied to clipboard
feat/pipeline_plugins
- make the pipeline components plugins so they can be shipped in external packages, continuation of #336
- needs https://github.com/OpenVoiceOS/ovos-utils/pull/193
- needs https://github.com/OpenVoiceOS/ovos-plugin-manager/pull/177
- TODO needs changes in workshop around intent name munging
deprecations:
- move adapt bus handlers from IntentService to adapt plugin
- move padatious bus handlers from IntentService to padatious plugin
- subclass all services from plugins (converse/fallback/common_qa)
- add backward compatible properties with deprecation logs
- keep old handlers around with deprecation logs in case some downstream is calling them directly
plugins:
- [x] exact matches heuristics plugin (including keyword intents) - https://github.com/OpenVoiceOS/ovos-classifiers/pull/22
- [x] adapt plugin https://github.com/OpenVoiceOS/ovos-intent-plugin-adapt
- [x] padacioso plugin -> shipped directly in padacioso lib since its under OVOS org https://github.com/OpenVoiceOS/padacioso/pull/20
- [x] padatious plugin https://github.com/OpenVoiceOS/ovos-intent-plugin-padatious
- [x] padaos plugin -> subset of padatious, only exact matches https://github.com/OpenVoiceOS/ovos-intent-plugin-padaos
- [x] regex plugin -> pure regex intents, mk2 style https://github.com/OpenVoiceOS/ovos-intent-plugin-regex/
- [x] jurebes plugin -> shipped directly in jurebes lib since its under OVOS org https://github.com/OpenVoiceOS/jurebes/pull/1
- [ ] persona plugin -> shipped directly in persona repo since its under OVOS org
- [ ] OOV framework https://github.com/OpenVoiceOS/ovos-core/issues/273
- [x] nebulento plugin -> dead simple fuzzy match based intent engine https://github.com/OpenJarbas/nebulento/pull/1
- [x] palavreado plugin -> dead simple keyword based intent engine https://github.com/OpenJarbas/palavreado/pull/1
core plugins (part of ovos-core):
- [x] converse
- [x] common_qa
- [ ] common_play (TODO - simplify OCP and add a component to handle OCP queries instead of relying in a registered intent via OCP plugin)
- [x] fallback
pipeline considerations:
- need at least 1 of adapt/exact for keyword intents (adapt in classic mycroft)
- need at least 1 of padatious/padacioso/jurebes/padaos/exact for utterance intents (padatious in classic mycroft)
- exact_matches can work as a slower replacement to adapt bundled in ovos-classifiers (a direct dependency) -> adapt now fully optional
- padacioso can work as a slower replacement to padacioso (a direct dependency) -> padatious now fully optional
- for exact matches only, padaos should perform better than exact or padacioso
- pure regex intents, mk2 style -> new decorator needed in ovos-workshop to support registering these intents -> currently needs skills to emit bus events directly -> avoid plugin for now