Skip to content

Latest commit

 

History

History
155 lines (113 loc) · 3.9 KB

Config_cn.md

File metadata and controls

155 lines (113 loc) · 3.9 KB

配置系统

🌏English

基本语法

配置系统采用了YAML格式。为了方便配置,我们在基础的YAML语法上做了一些扩展。 import, default, overwrite是我们扩展的关键字。

import

import关键字用于导入其他文件中的配置。例如以下两个写法是等价的:

写法一:

# config.yaml
definition:
  def1: something...
  def2: something...

写法二:

# def1.yaml
def1: something...

# def2.yaml
def2: something...

# config.yaml
definition:
  import:
    - def1.yaml
    - def2.yaml

import关键字支持字符串或者列表作为值, 分别对应导入单个文件和导入多个文件的情况。

在导入过程中,如果被导入文件中有import关键字, 则将先执行被导入文件的import。 对于后两个关键字也是如此。

导入过程中如果遇到了键冲突的情况,将尝试递归地合并冲突的键所对应的值。 如果遇到无法合并的情况,则后出现的将覆盖先出现的。

default

default关键字用于指定默认值。例如以下两个写法是等价的:

写法一:

definition:
  def1:
    type: int
    value: 1
  def2:
    type: int
    value: 2
  def3:
    type: float
    value: 1.1

写法二:

definition:
  default:
    type: int
  def1:
    value: 1
  def2:
    value: 2
  def3:
    type: float
    value: 1.1

default关键字支持字符串、列表或者字典作为值。 config解析器将尝试合并default的值和与default并列的键所对应的值。 如果遇到无法合并的情况,则default关键字下的值具有更低的优先级。

overwrite

overwrite关键字的用法和default类似, 只不过在遇到冲突情况时overwrite关键字下的值具有更高的优先级。 这个关键字常与import联用,用于统一设置这一配置文件下所要求的值。

配置文件

配置文件的主要目录结构如下:

configs
├── assignments
│   ├── definition.yaml
│   ├── default.yaml
│   └── ...
├── agents
├── tasks
│   ├── task_assembly.yaml
│   └── ...
└── start_task.yaml

assignments

assignments目录下存放了所有的任务配置文件。 其中definition.yaml集合了所有的任务定义和模型定义。

单个任务配置文件主要需要以下字段:

  • definition: 通常import自definition.yaml,用于定义任务和模型。
  • concurrency: 用于定义模型的最大并行数。
  • assignments: 接受多个assignment,用于定义任务的具体分配。
  • output: 用于定义输出文件的路径。

单个assignment需要两个字段:

  • agents: 此任务需要运行的agent的名称。
  • tasks: 此任务需要运行的task的名称。

agents

agents目录下存放了所有的agent配置文件。 配置中键是agent的名称,值是agent的配置。 单个agent配置需要以下字段:

  • module: 定义对应的agent client模块。
  • parameters: 定义需要传入对应模块的参数。

tasks

tasks目录下存放了所有的task配置文件。 其中task_assembly.yaml集合了所有的task定义。 如果只是想运行现有的任务,一般不需要修改此目录下的文件。

与agent配置类似,键是task的名称,值是task的配置。 单个task配置需要以下字段:

  • module: 定义对应的task模块。
  • parameters: 定义需要传入对应模块的参数。

start_task.yaml

这个配置文件用于与src.start_task配合,自动化批量启动task_worker。 这个文件的字段如下:

  • definition: 用于定义任务,通常import自task_assembly.yaml
  • start(Optional): 用于指定需要启动的任务,键是任务名称,值是需要启动的worker的个数。
  • controller_address(Optional): 用于指定controller的地址,默认http://localhost:5000/api/