Padatious doesn't need to run 3 times.#3
Closed
Joanguitar wants to merge 26 commits intoHelloChatterbox:devfrom
Closed
Padatious doesn't need to run 3 times.#3Joanguitar wants to merge 26 commits intoHelloChatterbox:devfrom
Joanguitar wants to merge 26 commits intoHelloChatterbox:devfrom
Conversation
the generic enclosure partially handled some onboarding functions that dont belong there, in HolmesV the generic enclosure becomes essentially the GUI websocket service and no longer handles onboarding functionality Fixes the readiness check to include pairing check, only report mycroft.ready after device is paired HolmesV is meant to run in a modular fashion and might not have all services, this commit makes enclosure report ready after a timeout. A proper refactor is needed but breaks mycroft-core compatibility so it is most likely a WONTFIX. At least reduces the log spam... mycroft-core will wait forever and throw exceptions if not every service is loaded The only possible issue here is a delayed mycroft.ready message, mycroft-core considers itself ready if all services are running and before pairing, HolmesV waits until they all load, but if they dont all load it sends the ready signal anyway after timeout, chatterbox handles this fine and its not critical 🤷 authored-by: jarbasai <jarbasai@mailfence.com>
authored-by: jarbasai <jarbasai@mailfence.com>
- allow setting name of base XDG folder (rename "mycroft") - multiple "cores" can co exist now, each with it's own skills folder and config files - allow setting location and name of .conf files - allow enabling/disabling XDG support - optional XDG (configurable, ensure backwards compat) - dont auto create xdg paths (this was triggering some race conditions that killed the whole process when multiple places attempted to create the folder at same time, a simple string definition should not be creating directories) - make cache respect xdg - document "cache_path" in mycroft.conf fix/set RemoteConf path to cache path - the property can be used like the regular LocalConf object it subclasses authored-by: jarbasai <jarbasai@mailfence.com>
- feat/get_track_length - feat/set_playback_time - feat/get_playback_time - patch/audioservice_timedelta
- allow loading of existing cached files without forcing a mimic2 download
ensures intents have all original metadata unless overridden by the intent match this is useful to keep around the "utterances" key and "lang" keys, together with any additional metadata from pre-intent stage. this also means intent handlers always get at least the same info that converse() does
experimental config option to not require the pause between "hey mycroft" and actually issuing an order
initial experiments for a WIP skill permissions model converse: - configurable default timeout - timeout override per skill - configurable max consecutive number of skill activations - max consecutive number of skill activations override per skill fallback: - fallback skill priority override (user defines fallback order) - no fallback priority limit (can go above 100 now) * No hard limit at priority 100, while not officially supported mycroft-lib can handle fallback priorities up to 999
- make stop handler and handle_collect_resting use .reply - add on_handler_error callback for skill handlers - ensures all messages sent by skills use .forward - ensures all eventscheduler methods use .forward and .reply as appropriate, tie instances to parent skill - make mycroft.mic.listen from get_response use .reply - ensure message.context always includes skill_id
ensures that language is always passed along from utterance to intents, instead of assuming a global monolithic self.lang parameter. Every bus message can now request/inform about a specific language allows users to define secondary_languages in the .conf those secondary language resources will also be loaded and used as appropriate (when utterance is tagged) integrates with chatterbox wakeword2lang support and also with the hivemind voice satellite
when loading resources check for all language code variations and returns best path if lang is set to pt-pt but only pt-br resources exist, those will be loaded instead of skill failing changing language to en-gb should load british dialect variations if available, but en-us should still be used if en-gb missing! It's not a good enough reason to fail completely, this can be device breaking and greatly impacts user experience unmerged original PR - MycroftAI/mycroft-core#1335
Add check for duplicate adapt intents There are two cases, duplicated named intent and duplicated anonymous intent. A named intent will cause a ValueError exception notifying the skill author that there is a collision. An anonymous intent will silently derive a new name and use that instead of the default generated one. Make enable/disable intent handle the new exception The enable/disable intent did not mark an intent as detached, instead it remained in the list of intents after disabling in the IntentServiceInterface to be retrieved when the intent should be re-enabled. This moves detached intents into a list of detached intents to so they won't cause the double enable exception. Add tests for intent collisions
helps sending the other bus events from intent handling in the proper ordering, often intent.handler.complete message comes in too early
- self.lang now always reflects "lang" that came in the bus message - deprecate dig_for_lang
Improves accuracy since only lang specific intents are taken into account now If the utterance's language is not loaded but the skill has the files for the dialog the renderer will load these and answer using the original message's lang. - Multiple intent service for each lang - make the dialog_renderer load lang resources on demand - Remove fallback to en-us for missing resource files
- track all pages being displayed by skill - ensure bus exists before trying to emit messages this should avoid most of the error logs during skill shutdown and reload
Adds automated testing of setup.py builds and pip installation with all valid extras to check for any dependency conflicts Modifies requirements to include mycroft-messagebus-client==0.9.1 which should still be compatible
New class PadatiousMatcher can be called multiple times but only computes the match and the confidence the first time it is called. This is to avoid computational redundancy.
Contributor
Author
|
I don't know if it's placebo effect but I feel like with this change the speed in which my HolmesV handles fallbacks is much faster, there's no change for normal skills because multiple padatious intent matching processes are only run when a fallback happens, the lower the fallback the more padatious intent matches run. |
b45a476 to
9a88e69
Compare
30a581b to
92d4927
Compare
Contributor
|
I missed this PR, rebased and merged via b0f463c thanks! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Very simple trick to reuse the intent match result for Padatious when called multiple times.