ovos-core icon indicating copy to clipboard operation
ovos-core copied to clipboard

feat/pipeline_plugins

Open JarbasAl opened this issue 2 years ago • 0 comments

  • 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

JarbasAl avatar Sep 20 '23 01:09 JarbasAl