Text-Steuerungsfilter

Der Text-Steuerungsfilter ist eine Methode, um Steuerelemente basierend auf ihrem Text zu filtern. Der Plan des Agenten im aktuellen Schritt enthält normalerweise einige Schlüsselwörter oder Phrasen. Diese Methode filtert die Steuerelemente basierend auf der Übereinstimmung zwischen dem Text des Steuerelements und den Schlüsselwörtern oder Phrasen im Plan des Agenten.

Konfiguration

Um die Text-Steuerungsfilterung zu aktivieren, müssen Sie TEXT zur Liste CONTROL_FILTER in der Datei config_dev.yaml hinzufügen. Nachfolgend finden Sie die detaillierte Konfiguration des Text-Steuerungsfilters in der Datei config_dev.yaml.

  • CONTROL_FILTER: Eine Liste von Filtermethoden, die Sie auf die Steuerelemente anwenden möchten. Um die Text-Steuerungsfilterung zu aktivieren, fügen Sie TEXT zur Liste hinzu.
  • CONTROL_FILTER_TOP_K_PLAN: Die Anzahl der Schlüsselwörter oder Phrasen aus dem Agentenplan, die zum Filtern der Steuerelemente verwendet werden.

Referenz

Eine Klasse, die Methoden zum Filtern von Steuerelementen basierend auf Plänen bereitstellt.

control_filter(control_dicts, plans) staticmethod

Filtert Steuerelementelemente basierend auf Schlüsselwörtern.

Parameter
  • control_dicts (Dict) –

    Das Wörterbuch der zu filternden Steuerelementelemente.

  • plans (List[str]) –

    Die Liste der Pläne, die zum Filtern verwendet werden sollen.

Rückgabe
  • Dict

    Die gefilterten Steuerungs-Elemente.

Quellcode in automator/ui_control/control_filter.py
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
@staticmethod
def control_filter(control_dicts: Dict, plans: List[str]) -> Dict:
    """
    Filters control items based on keywords.
    :param control_dicts: The dictionary of control items to be filtered.
    :param plans: The list of plans to be used for filtering.
    :return: The filtered control items.
    """
    filtered_control_dict = {}

    keywords = BasicControlFilter.plans_to_keywords(plans)
    for label, control_item in control_dicts.items():
        control_text = control_item.element_info.name.lower()
        if any(
            keyword in control_text or control_text in keyword
            for keyword in keywords
        ):
            filtered_control_dict[label] = control_item
    return filtered_control_dict