Follower-Modus
Der Follower-Modus ist eine Funktion von UFO, bei der der Agent eine Liste vordefinierter Schritte in natürlicher Sprache befolgt, um Aktionen auf Anwendungen auszuführen. Im Gegensatz zum normalen Modus erstellt dieser Modus einen FollowerAgent, der die vom Benutzer bereitgestellte Zielliste befolgt, um mit der Anwendung zu interagieren, anstatt den Plan selbst zu generieren. Dieser Modus ist nützlich für Debugging und Softwaretests oder Verifizierungen.
Schnellstart
Schritt 1: Erstellen Sie eine Plan-Datei
Bevor Sie den Follower-Modus starten, müssen Sie eine Plan-Datei erstellen, die die Liste der Schritte enthält, die der Agent befolgen soll. Die Plan-Datei ist eine JSON-Datei, die die folgenden Felder enthält
| Feld | Beschreibung | Typ |
|---|---|---|
| task | Die Aufgabenbeschreibung. | String |
| steps | Die Liste der Schritte, die der Agent befolgen soll. | Liste von Zeichenketten |
| object | Die Anwendung oder Datei, mit der interagiert werden soll. | String |
Unten ist ein Beispiel für eine Plan-Datei
{
"task": "Type in a text of 'Test For Fun' with heading 1 level",
"steps":
[
"1.type in 'Test For Fun'",
"2.Select the 'Test For Fun' text",
"3.Click 'Home' tab to show the 'Styles' ribbon tab",
"4.Click 'Styles' ribbon tab to show the style 'Heading 1'",
"5.Click 'Heading 1' style to apply the style to the selected text"
],
"object": "draft.docx"
}
Hinweis
Das Feld object ist die Anwendung oder Datei, mit der der Agent interagieren wird. Das Objekt muss aktiv sein (kann minimiert werden), wenn der Follower-Modus gestartet wird.
Schritt 2: Starten Sie den Follower Mode
Um den Follower-Modus zu starten, führen Sie den folgenden Befehl aus
# assume you are in the cloned UFO folder
python ufo.py --task_name {task_name} --mode follower --plan {plan_file}
Tipp
Ersetzen Sie {task_name} durch den Namen der Aufgabe und {plan_file} durch den Pfad zur Plan-Datei.
Schritt 3: Im Batch-Modus ausführen (Optional)
Sie können den Follower-Modus auch im Batch-Modus ausführen, indem Sie einen Ordner mit mehreren Plan-Dateien angeben. Der Agent wird die Pläne im Ordner nacheinander ausführen. Um im Batch-Modus auszuführen, führen Sie den folgenden Befehl aus
# assume you are in the cloned UFO folder
python ufo.py --task_name {task_name} --mode follower --plan {plan_folder}
UFO erkennt automatisch die Plan-Dateien im Ordner und führt sie nacheinander aus.
Tipp
Ersetzen Sie {task_name} durch den Namen der Aufgabe und {plan_folder} durch den Pfad zum Ordner mit den Plan-Dateien.
Evaluierung
Möglicherweise möchten Sie task anhand des Plans erfolgreich abgeschlossen oder nicht bewerten. UFO ruft den EvaluationAgent auf, um die Aufgabe zu bewerten, wenn EVA_SESSION in der Datei config_dev.yaml auf True gesetzt ist.
Sie können das Evaluationsprotokoll in der Datei logs/{task_name}/evaluation.log überprüfen.
Referenzen
Der Follower-Modus verwendet einen PlanReader, um die Plan-Datei zu parsen und eine FollowerSession zu erstellen, um dem Plan zu folgen.
PlanReader
Der PlanReader befindet sich in der Datei ufo/module/sessions/plan_reader.py.
Der Reader für eine Plan-Datei.
Initialisiert einen Plan-Reader.
| Parameter |
|
|---|
Quellcode in module/sessions/plan_reader.py
18 19 20 21 22 23 24 25 26 27 28 | |
get_close()
Prüft, ob der Plan geschlossen ist.
| Rückgabe |
|
|---|
Quellcode in module/sessions/plan_reader.py
30 31 32 33 34 35 36 | |
get_host_agent_request()
Ruft die Anfrage für den Host-Agenten ab.
| Rückgabe |
|
|---|
Quellcode in module/sessions/plan_reader.py
75 76 77 78 79 80 81 82 83 84 85 86 87 88 | |
get_host_request()
Ruft die Anfrage für den Host-Agenten ab.
| Rückgabe |
|
|---|
Quellcode in module/sessions/plan_reader.py
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 | |
get_initial_request()
Ruft die initiale Anfrage im Plan ab.
| Rückgabe |
|
|---|
Quellcode in module/sessions/plan_reader.py
62 63 64 65 66 67 68 69 70 71 72 73 | |
get_operation_object()
Ruft das Operationsobjekt im Schritt ab.
| Rückgabe |
|
|---|
Quellcode in module/sessions/plan_reader.py
54 55 56 57 58 59 60 | |
get_root_path()
Ruft den Stammordner des Plans ab.
| Rückgabe |
|
|---|
Quellcode in module/sessions/plan_reader.py
148 149 150 151 152 153 154 | |
get_steps()
Ruft die Schritte im Plan ab.
| Rückgabe |
|
|---|
Quellcode in module/sessions/plan_reader.py
46 47 48 49 50 51 52 | |
get_support_apps()
Ruft die unterstützten Apps im Plan ab.
| Rückgabe |
|
|---|
Quellcode in module/sessions/plan_reader.py
103 104 105 106 107 108 109 | |
get_task()
Ruft den Aufgabennamen ab.
| Rückgabe |
|
|---|
Quellcode in module/sessions/plan_reader.py
38 39 40 41 42 43 44 | |
next_step()
Ruft den nächsten Schritt im Plan ab.
| Rückgabe |
|
|---|
Quellcode in module/sessions/plan_reader.py
128 129 130 131 132 133 134 135 136 137 138 | |
task_finished()
Prüft, ob die Aufgabe abgeschlossen ist.
| Rückgabe |
|
|---|
Quellcode in module/sessions/plan_reader.py
140 141 142 143 144 145 146 | |
FollowerSession
Die FollowerSession befindet sich ebenfalls in der Datei ufo/module/sessions/session.py.
Bases: BaseSession
Eine Sitzung zum Befolgen einer Liste von Plänen für durchgeführte Aktionen. Diese Sitzung wird für den Follower-Agenten verwendet, der eine Plan-Datei zum Befolgen über den PlanReader akzeptiert.
Initialisiert eine Sitzung.
| Parameter |
|
|---|
Quellcode in module/sessions/session.py
285 286 287 288 289 290 291 292 293 294 295 296 297 298 | |
create_new_round()
Erstellt eine neue Runde.
Quellcode in module/sessions/session.py
308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 | |
next_request()
Ruft die Anfrage für die neue Runde ab.
Quellcode in module/sessions/session.py
355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 | |
request_to_evaluate()
Ruft die Anfrage zur Bewertung ab. Rückgabe: Die Anfrage(n) zur Bewertung.
Quellcode in module/sessions/session.py
371 372 373 374 375 376 377 | |