diff --git a/__init__.py b/__init__.py index 6d51dfa..be21741 100644 --- a/__init__.py +++ b/__init__.py @@ -29,12 +29,13 @@ from threading import Thread from time import time +from ovos_bus_client import Message from ovos_utils import classproperty from ovos_utils.log import LOG from ovos_utils.process_utils import RuntimeRequirements # from ovos_workshop.skills.fallback import FallbackSkill from neon_utils.skills.neon_fallback_skill import NeonFallbackSkill, NeonSkill -from neon_utils.message_utils import get_message_user +from neon_utils.message_utils import get_message_user, dig_for_message from neon_utils.user_utils import get_user_prefs from neon_mq_connector.utils.client_utils import send_mq_request from mycroft.skills.mycroft_skill.decorators import intent_file_handler @@ -124,6 +125,7 @@ def handle_chat_with_llm(self, message): llm = LLM.GPT self.speak_dialog("start_chat", {"llm": llm.value}) self._reset_expiration(user) + self._change_listening_mode("continuous", message) @intent_file_handler("email_chat_history.intent") def handle_email_chat_history(self, message): @@ -159,6 +161,7 @@ def _stop_chatting(self, message): self.speak_dialog("end_chat") event_name = f"end_converse.{user}" self.cancel_scheduled_event(event_name) + self._change_listening_mode("wakeword", message) def _get_llm_response(self, query: str, user: str) -> str: """ @@ -214,6 +217,11 @@ def _reset_expiration(self, user): self.schedule_event(self._stop_chatting, self.chat_timeout_seconds, {'user': user}, event_name) + def _change_listening_mode(self, mode: str, message: Message): + message = message.forward("recognizer_loop:state.set", + {"mode": mode}) + self.bus.emit(message) + def create_skill(): return LLMSkill()