webrl/docs/Config_cn.md
2024-08-08 23:40:38 +08:00

156 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 配置系统
[🌏English](Config_cn.md)
## 基本语法
配置系统采用了YAML格式。为了方便配置我们在基础的YAML语法上做了一些扩展。
`import`, `default`, `overwrite`是我们扩展的关键字。
### import
`import`关键字用于导入其他文件中的配置。例如以下两个写法是等价的:
写法一:
```yaml
# config.yaml
definition:
def1: something...
def2: something...
```
写法二:
```yaml
# def1.yaml
def1: something...
# def2.yaml
def2: something...
# config.yaml
definition:
import:
- def1.yaml
- def2.yaml
```
`import`关键字支持字符串或者列表作为值,
分别对应导入单个文件和导入多个文件的情况。
在导入过程中,如果被导入文件中有`import`关键字,
则将先执行被导入文件的`import`。
对于后两个关键字也是如此。
导入过程中如果遇到了键冲突的情况,将尝试递归地合并冲突的键所对应的值。
如果遇到无法合并的情况,则后出现的将覆盖先出现的。
### default
`default`关键字用于指定默认值。例如以下两个写法是等价的:
写法一:
```yaml
definition:
def1:
type: int
value: 1
def2:
type: int
value: 2
def3:
type: float
value: 1.1
```
写法二:
```yaml
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/