Tworzenie nowych modułów wtyczek ( docs/CreatingNewPluginModules.md )¶
Nasz framework wykorzystuje potężny system automatycznego wykrywania do ładowania modułów reguł. Dzięki temu dodawanie nowych zestawów poleceń jest proste i przejrzyste, bez konieczności ręcznego rejestrowania każdego nowego komponentu. W tym przewodniku wyjaśniono, jak tworzyć, organizować i zarządzać własnymi modułami niestandardowymi.
Podstawowa koncepcja: moduły oparte na folderach¶
Moduł to po prostu folder w katalogu config/maps/. System automatycznie skanuje ten katalog i traktuje każdy podfolder jako moduł do załadowania.
Przewodnik krok po kroku dotyczący tworzenia modułu¶
Wykonaj poniższe kroki, aby utworzyć nowy moduł, na przykład do przechowywania makr dla konkretnej gry.
1. Przejdź do katalogu Map
Wszystkie moduły reguł znajdują się w folderze config/maps/ projektu.
2. Utwórz folder modułu
Utwórz nowy folder. Nazwa powinna być opisowa i zawierać podkreślenia zamiast spacji (np. moja_makro_gry, niestandardowa_automatyzacja_domu).
3. Dodaj podfoldery języka (krok krytyczny) W folderze nowego modułu musisz utworzyć podfoldery dla każdego języka, który chcesz obsługiwać.
Konwencja nazewnictwa: Nazwy tych podfolderów muszą być prawidłowymi kodami języka i ustawień regionalnych. System używa tych nazw do załadowania poprawnych reguł dla aktywnego języka.
Poprawne przykłady:
de-DE,en-US,en-GB,pt-BRUwaga: Jeśli użyjesz niestandardowej nazwy, takiej jak
niemieckilubenglish_rules, system albo zignoruje folder, albo potraktuje go jako oddzielny moduł niespecyficzny dla języka.
4. Dodaj swoje pliki reguł
Umieść pliki reguł (np. FUZZY_MAP_pre.py) w podfolderze odpowiedniego języka. Najprostszym sposobem na rozpoczęcie jest skopiowanie zawartości istniejącego folderu modułu językowego w celu użycia go jako szablonu.
Przykładowa struktura katalogów¶
KOD_BLOKU_0
Zarządzanie modułami w konfiguracji¶
System zaprojektowano tak, aby wymagał minimalnej konfiguracji.
Włączanie modułów (domyślne)¶
Moduły są domyślnie włączone. Jeśli w config/maps/ istnieje folder modułu, system go znajdzie i załaduje jego reguły. Nie musisz dodawać wpisu do pliku ustawień, aby włączyć nowy moduł.
Wyłączanie modułów¶
Aby wyłączyć moduł, musisz dodać dla niego wpis w słowniku PLUGINS_ENABLED w pliku ustawień i ustawić jego wartość na False.
(Opcjonalnie) W przypadku prawdy/fałszu możesz także użyć 1/0. Jest to jednak rzadkie i może zmniejszyć czytelność.
Przykład (config/settings.py):
KOD_BLOKU_1
Ważne uwagi projektowe¶
Zachowanie domyślne: Brak wpisu równa się
TrueJeśli moduł nie jest wymieniony w słownikuPLUGINS_ENABLED, domyślnie jest uważany za aktywny. Dzięki takiemu rozwiązaniu plik konfiguracyjny jest czysty, ponieważ wystarczy jedynie wyświetlić listę wyjątków.Skrót od Włączanie Twój system konfiguracyjny rozumie również, że wypisanie klucza modułu bez wartości oznacza, że jest on włączony. Na przykład dodanie „wannweil” do słownika jest równoznaczne z dodaniem „wannweil”: True. Zapewnia to wygodny skrót umożliwiający włączanie modułów. XSPACEbreakX (Opcjonalnie) W przypadku prawdy/fałszu możesz także użyć 1/0. Jest to jednak rzadkie i może zmniejszyć czytelność.
Wyłączanie modułów nadrzędnych: Zamierzone zachowanie polega na tym, że wyłączenie modułu nadrzędnego powinno XSPACEbreakX automatycznie wyłącza wszystkie moduły podrzędne i podfoldery językowe. Na przykład ustawienie
"standard_actions": Falsepowinno uniemożliwić załadowanie zarównode-DE, jak ien-US. (27.10.25 pon.) XSPACEbreakXbramka Celem jest dalsze udoskonalanie tego systemu. Na przykład umożliwienie respektowania ustawień modułu podrzędnego, nawet jeśli moduł nadrzędny jest wyłączony, lub wprowadzenie bardziej złożonych reguł dziedziczenia. (27.10.25 pon.)
XSPACEbreakX XSPACEbreakX XSPACEbreakX t1- Es ist in der Tat wesentlich benutzerfreundlicher und komfortabler, die Steuerung über die Sprachbefehle direkt in diesem Dokumentationsabschnitt hervorzuheben [1].
t2- Wir erweitern den Entwurf um eine klare Beschreibung der Tasten- bzw. Sprachsteuerungsbefehle (czyli „Aura, Lernmodus einschalten / ausschalten”) i erklären kurz, czyli toggle_learning.py das Aus- und Einkommentieren automatisiert [2].
Włączanie trybu uczenia się (niezrównany trening)¶
Aby pozwolić Twojemu modułowi na automatyczne uczenie się nierozpoznanych fraz, gdy aktywny jest “Lernmodus” (tryb uczenia się), możesz dodać regułę catch-all na na samym dole listy FUZZY_MAP_pre.
Ta reguła wywołuje niedopasowaną wtyczkę szkoleniową, gdy żadna inna konkretna reguła w Twoim pliku nie pasuje:
KOD_BLOKU_2
Wtyczka szkoleniowa używa f'{str(__file__)}' do zlokalizowania pliku i automatycznego dołączenia nierozpoznanej frazy do pierwszej dostępnej grupy reguł (takiej jak główna grupa poleceń).
Przełączanie trybu nauki za pomocą poleceń głosowych¶
Zamiast ręcznej edycji plików najwygodniejszym sposobem zarządzania tą funkcją jest użycie wbudowanych poleceń głosowych:
Aby włączyć: powiedz „Aura, tryb uczenia się włączony” lub „Aura, Lernmodus starten”.
Aby wyłączyć: powiedz „Aura, tryb uczenia się wyłączony” lub „Aura, zatrzymanie Lernmodus”.
Te polecenia uruchamiają w tle plik toggle_learning.py, który automatycznie komentuje lub odkomentuje linie catch-all w aktywnych plikach map.
XSPACEbreakX
XSPACEbreakX
XSPACEbreakX
XSPACEbreakX
Wskazówka: Po zdefiniowaniu wzorców wyrażeń regularnych uruchom python3 Tools/map_tagger.py, aby automatycznie wygenerować możliwe do przeszukiwania przykłady dla narzędzi CLI. Aby uzyskać szczegółowe informacje, zobacz Map Maintenance Tools.