Spaces:
Sleeping
Sleeping
Download modules/dashboard/event_handler.py from sky-meilin/SkyOSFullCore: direct link, hf CLI and curl.
- Browser
- Download file 3.61 kB
-
https://huggingface.co/spaces/sky-meilin/SkyOSFullCore/resolve/main/modules/dashboard/event_handler.py
- Command line
-
hf download hf://spaces/sky-meilin/SkyOSFullCore/modules/dashboard/event_handler.py
-
curl -L -o event_handler.py https://huggingface.co/spaces/sky-meilin/SkyOSFullCore/resolve/main/modules/dashboard/event_handler.py
3.61 kB
| """ | |
| event_handler.py | |
| SkyOS Dashboard Event Handler | |
| Verbindet alle UI-Komponenten mit den Backend-Modulen. | |
| Autor: Sky Meilin | |
| Projekt: SkyOS | |
| """ | |
| from __future__ import annotations | |
| import logging | |
| logger = logging.getLogger("SkyOS.Dashboard") | |
| # --------------------------------------------------------- | |
| # Backend Bridge | |
| # --------------------------------------------------------- | |
| def process_message(message: str) -> str: | |
| """ | |
| Übergangspunkt zum SkyOS Router. | |
| Wird später ersetzt durch: | |
| Router.handle(message) | |
| """ | |
| return ( | |
| "Nachricht empfangen. " | |
| "Die Verarbeitung übernimmt später der SkyOS Router." | |
| ) | |
| # --------------------------------------------------------- | |
| # Chat Events | |
| # --------------------------------------------------------- | |
| def send_message(text, audio): | |
| """ | |
| Standard-Chatcallback. | |
| """ | |
| try: | |
| if text: | |
| user_input = text | |
| elif audio: | |
| user_input = "🎤 Spracheingabe empfangen." | |
| else: | |
| return [], "", None | |
| response = process_message(user_input) | |
| history = [ | |
| { | |
| "role": "user", | |
| "content": user_input, | |
| }, | |
| { | |
| "role": "assistant", | |
| "content": response, | |
| }, | |
| ] | |
| return history, "", None | |
| except Exception: | |
| logger.exception("Chat-Verarbeitung fehlgeschlagen.") | |
| return ( | |
| [ | |
| { | |
| "role": "assistant", | |
| "content": "⚠️ Fehler bei der Verarbeitung." | |
| } | |
| ], | |
| "", | |
| None, | |
| ) | |
| # --------------------------------------------------------- | |
| # Status Events | |
| # --------------------------------------------------------- | |
| def refresh_status(): | |
| """ | |
| Status-Aktualisierung. | |
| Später: | |
| StatusMonitor.get_status() | |
| """ | |
| logger.info("Status aktualisiert") | |
| return ( | |
| "🟢 Online", | |
| "🟡 Nicht verbunden", | |
| "🟢 Aktiv", | |
| "🟢 Aktiv", | |
| "🟢 Aktiv", | |
| "🟢 Aktiv", | |
| "🟢 Online", | |
| "🟢 Online", | |
| ) | |
| # --------------------------------------------------------- | |
| # Header Events | |
| # --------------------------------------------------------- | |
| def refresh_header(): | |
| """ | |
| Aktualisiert die Dashboard-Uhr. | |
| """ | |
| from .header import current_time | |
| return ( | |
| current_time(), | |
| ) | |
| # --------------------------------------------------------- | |
| # Event Registrierung | |
| # --------------------------------------------------------- | |
| def register_events( | |
| *, | |
| status: dict, | |
| stream: dict, | |
| chat: dict, | |
| navigation: dict, | |
| ): | |
| """ | |
| Registriert alle Dashboard-Events. | |
| """ | |
| logger.info("Registriere Dashboard Events...") | |
| # Chat Button | |
| if "send" in chat: | |
| chat["send"].click( | |
| fn=send_message, | |
| inputs=[ | |
| chat["message"], | |
| chat["audio"], | |
| ], | |
| outputs=[ | |
| chat["chatbot"], | |
| chat["message"], | |
| chat["audio"], | |
| ], | |
| ) | |
| # Enter Taste | |
| if "message" in chat: | |
| chat["message"].submit( | |
| fn=send_message, | |
| inputs=[ | |
| chat["message"], | |
| chat["audio"], | |
| ], | |
| outputs=[ | |
| chat["chatbot"], | |
| chat["message"], | |
| chat["audio"], | |
| ], | |
| ) | |
| logger.info( | |
| "Dashboard Events registriert." | |
| ) |