Omówienie funkcji: wdrażanie przełączalnego trybu tłumaczenia na żywo¶
Nasza wtykowa struktura asystentów głosowych została zaprojektowana z myślą o maksymalnej elastyczności. W tym przewodniku przedstawiono potężną funkcję: tryb tłumaczenia na żywo, który można włączać i wyłączać za pomocą prostego polecenia głosowego. Wyobraź sobie, że rozmawiasz ze swoim asystentem po niemiecku i słyszysz komunikat po portugalsku, a następnie natychmiast wracasz do normalnego zachowania.
Osiąga się to nie poprzez zmianę podstawowego silnika, ale poprzez sprytną manipulację samym plikiem konfiguracyjnym reguł.
Jak z niego korzystać¶
Konfiguracja tego polega na dodaniu dwóch reguł do pliku FUZZY_MAP_pre.py i utworzeniu odpowiednich skryptów.
1. Reguła przełączania: Ta reguła nasłuchuje polecenia włączenia lub wyłączenia trybu tłumaczenia.
KOD_BLOKU_0
Kiedy powiesz „Übersetzung einschalten” (włącz tłumaczenie), zostanie wykonany skrypt toggle_translation_mode.py.
2. Reguła tłumaczenia: Jest to reguła typu „catch-all”, która, gdy jest aktywna, dopasowuje dowolny tekst i wysyła go do skryptu tłumaczącego.
KOD_BLOKU_1
Kluczem jest tutaj komentarz # TRANSLATION_RULE. Działa to jak „kotwica”, której skrypt przełączający używa do znajdowania i modyfikowania reguły znajdującej się poniżej.
Jak to działa: magia za kurtyną¶
Zamiast używać stanu wewnętrznego, ta metoda bezpośrednio edytuje mapę reguł w systemie plików. Skrypt toggle_translation_mode.py pełni rolę menedżera konfiguracji.
Znajdź regułę: Po uruchomieniu skrypt odczytuje zawartość
FUZZY_MAP_pre.py. Wyszukuje unikalny komentarz zakotwiczenia# TRANSLATION_RULE.Przełącz stan:
Aby wyłączyć: Jeśli linia reguły pod kotwicą jest aktywna, skrypt dodaje
#na początku linii, skutecznie ją komentując i wyłączając.Aby włączyć: Jeśli linia reguły jest już zakomentowana, skrypt ostrożnie usuwa wiodący
#, ponownie aktywując regułę.
Zapisz i załaduj ponownie: Skrypt zapisuje zmodyfikowaną zawartość z powrotem do
FUZZY_MAP_pre.py. Następnie tworzy specjalny plik wyzwalacza (np.RELOAD_RULES.trigger). Główna usługa stale obserwuje ten plik wyzwalający. Kiedy się pojawi, usługa wie, że jej konfiguracja została zmieniona i ponownie ładuje całą mapę reguł z dysku, natychmiastowo stosując zmianę.
Filozofia projektowania: zalety i uwagi¶
To podejście polegające na bezpośredniej modyfikacji pliku konfiguracyjnego zostało wybrane ze względu na jego przejrzystość i prostotę dla użytkownika końcowego.
Zalety:¶
Wysoka przejrzystość: Aktualny stan systemu jest zawsze widoczny. Szybkie spojrzenie na plik
FUZZY_MAP_pre.pynatychmiast ujawnia, czy reguła tłumaczenia jest aktywna, czy też została skomentowana.Brak zmian w silniku podstawowym: Ta zaawansowana funkcja została zaimplementowana bez zmiany ani jednej linii podstawowego silnika przetwarzania reguł. Pokazuje elastyczność systemu wtyczek.
Intuicyjny dla programistów: Koncepcja włączania lub wyłączania fragmentu konfiguracji poprzez skomentowanie go jest znanym, prostym i zaufanym wzorcem dla każdego, kto pracował z kodem lub plikami konfiguracyjnymi.
Rozważania:¶
Uprawnienia systemu plików: Aby ta metoda działała, proces asystenta musi mieć uprawnienia do zapisu własnych plików konfiguracyjnych. W niektórych środowiskach o wysokim poziomie bezpieczeństwa może to być brane pod uwagę.