base.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. # -*- coding: utf-8 -*-
  2. """
  3. Abstrakte Basisklasse fuer Korrektur-Schichten.
  4. """
  5. from abc import ABC, abstractmethod
  6. class CorrectionLayer(ABC):
  7. """Abstrakte Basis fuer eine STT-Korrektur-Schicht."""
  8. NAME: str = ""
  9. @abstractmethod
  10. def is_available(self) -> bool:
  11. """Prueft ob die benoetigte Library installiert und das Modell vorhanden ist."""
  12. @abstractmethod
  13. def initialize(self, config: dict, language: str, protected_words: list[str]) -> bool:
  14. """
  15. Initialisiert die Schicht.
  16. Args:
  17. config: Layer-spezifische Konfiguration
  18. language: Sprachcode (z.B. "de")
  19. protected_words: Woerter die nicht korrigiert werden duerfen
  20. Returns:
  21. True wenn Initialisierung erfolgreich, sonst False
  22. """
  23. @abstractmethod
  24. def correct(self, text: str) -> str:
  25. """
  26. Korrigiert den uebergebenen Text.
  27. Args:
  28. text: Eingabetext
  29. Returns:
  30. Korrigierter Text
  31. """
  32. def shutdown(self) -> None:
  33. """Optionales Cleanup beim Herunterfahren."""
  34. pass