批处理模式
批处理模式是 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 |
|