Skip to content

Commit

Permalink
optimize: dont load padacioso if not needed by default
Browse files Browse the repository at this point in the history
  • Loading branch information
JarbasAl committed Dec 9, 2024
1 parent 378bb5e commit 86d412f
Showing 1 changed file with 28 additions and 11 deletions.
39 changes: 28 additions & 11 deletions ovos_core/intent_services/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,14 @@ def _load_pipeline_plugins(self):
except ImportError:
LOG.error(f'Failed to create padatious intent handlers, padatious not installed')

self._padacioso_service = PadaciosoService(self.bus, self.config["padatious"])
# by default only load padacioso is padatious is not available
# save memory if padacioso isnt needed
disable_padacioso = self.config.get("disable_padacioso", self._padatious_service is not None)
if not disable_padacioso:
self._padacioso_service = PadaciosoService(self.bus, self.config["padatious"])
elif "disable_padacioso" not in self.config:
LOG.debug("Padacioso pipeline is disabled, only padatious is loaded. "
"set 'disable_padacioso': false in mycroft.conf if you want it to load alongside padatious")
self._fallback = FallbackService(self.bus)
self._converse = ConverseService(self.bus)
self._common_qa = CommonQAService(self.bus, self.config.get("common_query"))
Expand Down Expand Up @@ -171,11 +178,13 @@ def get_pipeline(self, skips=None, session=None) -> Tuple[str, Callable]:

# Create matchers
# TODO - from plugins
padatious_matcher = None
if self._padatious_service is None:
if any("padatious" in p for p in session.pipeline):
LOG.warning("padatious is not available! using padacioso in it's place, "
"intent matching will be extremely slow in comparison")
padatious_matcher = self._padacioso_service
if self._padacioso_service is not None:
if any("padatious" in p for p in session.pipeline):
LOG.warning("padatious is not available! using padacioso in it's place, "
"intent matching will be extremely slow in comparison")
padatious_matcher = self._padacioso_service
else:
padatious_matcher = self._padatious_service

Expand All @@ -184,20 +193,28 @@ def get_pipeline(self, skips=None, session=None) -> Tuple[str, Callable]:
"stop_high": self._stop.match_stop_high,
"stop_medium": self._stop.match_stop_medium,
"stop_low": self._stop.match_stop_low,
"padatious_high": padatious_matcher.match_high,
"padacioso_high": self._padacioso_service.match_high,
"adapt_high": self._adapt_service.match_high,
"common_qa": self._common_qa.match,
"fallback_high": self._fallback.high_prio,
"padatious_medium": padatious_matcher.match_medium,
"padacioso_medium": self._padacioso_service.match_medium,
"adapt_medium": self._adapt_service.match_medium,
"fallback_medium": self._fallback.medium_prio,
"padatious_low": padatious_matcher.match_low,
"padacioso_low": self._padacioso_service.match_low,
"adapt_low": self._adapt_service.match_low,
"fallback_low": self._fallback.low_prio
}
if self._padacioso_service is not None:
matchers.update({
"padacioso_high": self._padacioso_service.match_high,
"padacioso_medium": self._padacioso_service.match_medium,
"padacioso_low": self._padacioso_service.match_low,

})
if self._padatious_service is not None:
matchers.update({
"padatious_high": padatious_matcher.match_high,
"padatious_medium": padatious_matcher.match_medium,
"padatious_low": padatious_matcher.match_low,

})
if self._ocp is not None:
matchers.update({
"ocp_high": self._ocp.match_high,
Expand Down

0 comments on commit 86d412f

Please sign in to comment.