Conversation
Of course, it's possible that the speech that Dicio is hearing is not directed at it, so it doesn't make sense to retry indefinitely: if the user's second attempt is also something that Dicio can't understand, this implementation omits the "Could you repeat?" part of the response and stops re-enabling the microphone until the user successfully performs another interaction.
This gives more flexibility and allows the skills to control the conversation flow better
This was referenced Feb 27, 2025
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.
Another spin at #292 which is a bit better than my attempt in #295. As explained in #292:
In order to make this possible, two architectural changes were needed:
SkillContext:InteractionLogpreviousInteractionWasFallbackSkillOutput.SkillEvaluatorthat the microphone should be enabled againgetKeepListening()function toSkillOutputgetNextSkills(), which still madeSkillEvaluatorthink the skill was requesting more outputSkillOutput.getNextSkills()is renamed togetInteractionPlan()with various options on how the interaction should continue (see the sealed classInteractionPlan), which also includes whether the microphone should be reenabled immediately or notFixes #280
Testing APK: https://github.com/Stypox/testing-apks/releases/download/12/app-debug.apk