批处理模式
批处理模式是 UFO 的一个功能,该代理允许对任务进行批量自动化。
快速入门
步骤 1:创建计划文件
在启动批处理模式之前,您需要创建一个计划文件,其中包含代理要遵循的步骤列表。计划文件是一个 JSON 文件,包含以下字段:
| 字段 | 描述 | 类型 |
|---|---|---|
| task | 任务描述。 | 字符串 |
| object | 要交互的应用程序或文件。 | 字符串 |
| close | 确定在完成任务后是否关闭相应的应用程序或文件。 | 布尔值 |
下面是一个计划文件的示例:
{
"task": "Type in a text of 'Test For Fun' with heading 1 level",
"object": "draft.docx",
"close": False
}
注意
object 字段是代理将与之交互的应用程序或文件。在启动批处理模式时,该对象**必须处于活动状态**(可以最小化)。您的文件结构应如下所示,其中 tasks 是任务目录,files 是存储对象文件的位置:
- Parent
- tasks
- files
步骤 2:启动批处理模式
要启动批处理模式,请运行以下命令:
# assume you are in the cloned UFO folder
python ufo.py --task_name {task_name} --mode batch_normal --plan {plan_file}
提示
将 {task_name} 替换为任务的名称,将 {plan_file} 替换为 Path_to_Parent/Plan_file。
评估
您可能希望通过遵循计划来评估 task 是否成功完成。如果 config_dev.yaml 文件中的 EVA_SESSION 设置为 True,UFO 将调用 EvaluationAgent 来评估任务。
您可以在 logs/{task_name}/evaluation.log 文件中查看评估日志。
参考资料
批处理模式使用 PlanReader 解析计划文件并创建 FromFileSession 来遵循计划。
PlanReader
PlanReader 位于 ufo/module/sessions/plan_reader.py 文件中。
计划文件的读取器。
初始化计划读取器。
| 参数 |
|
|---|
源代码位于 module/sessions/plan_reader.py
18 19 20 21 22 23 24 25 26 27 28 | |
get_close()
检查计划是否已关闭。
| 返回 |
|
|---|
源代码位于 module/sessions/plan_reader.py
30 31 32 33 34 35 36 | |
get_host_agent_request()
获取主机代理的请求。
| 返回 |
|
|---|
源代码位于 module/sessions/plan_reader.py
75 76 77 78 79 80 81 82 83 84 85 86 87 88 | |
get_host_request()
获取主机代理的请求。
| 返回 |
|
|---|
源代码位于 module/sessions/plan_reader.py
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 | |
get_initial_request()
获取计划中的初始请求。
| 返回 |
|
|---|
源代码位于 module/sessions/plan_reader.py
62 63 64 65 66 67 68 69 70 71 72 73 | |
get_operation_object()
获取步骤中的操作对象。
| 返回 |
|
|---|
源代码位于 module/sessions/plan_reader.py
54 55 56 57 58 59 60 | |
get_root_path()
获取计划的根路径。
| 返回 |
|
|---|
源代码位于 module/sessions/plan_reader.py
148 149 150 151 152 153 154 | |
get_steps()
获取计划中的步骤。
| 返回 |
|
|---|
源代码位于 module/sessions/plan_reader.py
46 47 48 49 50 51 52 | |
get_support_apps()
获取计划中的支持应用程序。
| 返回 |
|
|---|
源代码位于 module/sessions/plan_reader.py
103 104 105 106 107 108 109 | |
get_task()
获取任务名称。
| 返回 |
|
|---|
源代码位于 module/sessions/plan_reader.py
38 39 40 41 42 43 44 | |
next_step()
获取计划中的下一步。
| 返回 |
|
|---|
源代码位于 module/sessions/plan_reader.py
128 129 130 131 132 133 134 135 136 137 138 | |
task_finished()
检查任务是否完成。
| 返回 |
|
|---|
源代码位于 module/sessions/plan_reader.py
140 141 142 143 144 145 146 | |
FollowerSession
FromFileSession 也位于 ufo/module/sessions/session.py 文件中。
基类:BaseSession
一个用于 UFO 的文件会话。
初始化会话。
| 参数 |
|
|---|
源代码位于 module/sessions/session.py
385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 | |
create_new_round()
创建一个新回合。
源代码位于 module/sessions/session.py
412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 | |
get_app_com(object_name)
根据对象名称获取 COM 对象名称。
| 参数 |
|
|---|
| 返回 |
|
|---|
源代码位于 module/sessions/session.py
467 468 469 470 471 472 473 474 475 476 477 478 479 | |
get_app_name(object_name)
根据对象名称获取应用程序名称。
| 参数 |
|
|---|
| 返回 |
|
|---|
源代码位于 module/sessions/session.py
451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 | |
next_request()
获取主机代理的请求。
| 返回 |
|
|---|
源代码位于 module/sessions/session.py
438 439 440 441 442 443 444 445 446 447 448 449 | |
record_task_done()
记录任务完成。
源代码位于 module/sessions/session.py
550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 | |
request_to_evaluate()
获取要评估的请求。返回:要评估的请求。
源代码位于 module/sessions/session.py
543 544 545 546 547 548 | |
run()
运行会话。
源代码位于 module/sessions/session.py
481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 | |
setup_application_environment()
通过根据操作对象确定应用程序名称和命令,然后启动应用程序来设置应用程序环境。
引发:Exception:如果在执行命令或通过 COM 与应用程序交互时发生错误。
源代码位于 module/sessions/session.py
514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 | |
terminate_application_processes()
根据提供的条件终止特定的应用程序进程。
源代码位于 module/sessions/session.py
497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 | |