docs: fix Workflow spec - correct script field and params syntax (#8)
This commit is contained in:
@@ -14,9 +14,7 @@
|
|||||||
| `category` | 否 | 分类标签 |
|
| `category` | 否 | 分类标签 |
|
||||||
| `tags` | 否 | 标签列表 |
|
| `tags` | 否 | 标签列表 |
|
||||||
| `params` | 是 | 输入参数的 JSON Schema |
|
| `params` | 是 | 输入参数的 JSON Schema |
|
||||||
| `output_schema` | 否 | 输出结果的结构定义 |
|
|
||||||
| `steps` | 是 | 执行步骤列表 |
|
| `steps` | 是 | 执行步骤列表 |
|
||||||
| `resolved_params` | 是 | 参数解析后的默认值 |
|
|
||||||
|
|
||||||
## 参数声明(params)
|
## 参数声明(params)
|
||||||
|
|
||||||
@@ -52,18 +50,20 @@ params:
|
|||||||
steps:
|
steps:
|
||||||
- id: my-step # 步骤 ID,唯一
|
- id: my-step # 步骤 ID,唯一
|
||||||
name: 我的步骤 # 步骤名称
|
name: 我的步骤 # 步骤名称
|
||||||
script: run # 脚本标识(不是 script: run.py)
|
script: run # 脚本标识(scripts/run.py 中的 run)
|
||||||
params:
|
params:
|
||||||
input: "$params.input_path}}" # 双花括号语法
|
input: $params.input_path # 使用 $params.xxx 引用参数
|
||||||
```
|
```
|
||||||
|
|
||||||
### 常见错误
|
### 常见错误
|
||||||
|
|
||||||
| ❌ 错误写法 | ✅ 正确写法 | 原因 |
|
| ❌ 错误写法 | ✅ 正确写法 | 原因 |
|
||||||
|-----------|-----------|------|
|
|-----------|-----------|------|
|
||||||
| `script: run.py` | `script: run` | 执行器读的是 `script` |
|
| `script: run.py` | `script: run` | 不带 .py 后缀 |
|
||||||
|
| `script_id: run` | `script: run` | 字段名是 `script` 不是 `script_id` |
|
||||||
| `params_mapping: {...}` | `params: {...}` | 字段名是 `params` |
|
| `params_mapping: {...}` | `params: {...}` | 字段名是 `params` |
|
||||||
| `$inputs.xxx` | `$params.xxx}}` | 双花括号语法 |
|
| `${{inputs.xxx}}` | `$params.xxx` | 使用 `$params.xxx` 语法 |
|
||||||
|
| `$inputs.xxx` | `$params.xxx` | 使用 `$params.xxx` 语法 |
|
||||||
|
|
||||||
## 文件共享
|
## 文件共享
|
||||||
|
|
||||||
@@ -79,33 +79,23 @@ with open("/tmp/output/result.json") as f:
|
|||||||
data = json.load(f)
|
data = json.load(f)
|
||||||
```
|
```
|
||||||
|
|
||||||
每个步骤也有独立的 `/tmp/step_output` 目录。
|
|
||||||
|
|
||||||
## 脚本约定
|
## 脚本约定
|
||||||
|
|
||||||
脚本通过 `PARAMS_FILE` 环境变量获取参数(默认 `/tmp/params.json`),结果通过 stdout 输出 JSON:
|
脚本通过 `PARAMS_FILE` 环境变量获取参数文件路径,或通过 `sys.argv[1]` 获取 JSON 参数:
|
||||||
|
|
||||||
```python
|
```python
|
||||||
import json, os
|
import json, os, sys
|
||||||
|
|
||||||
|
# 方式一:从 PARAMS_FILE 读取
|
||||||
params_file = os.environ.get("PARAMS_FILE", "/tmp/params.json")
|
params_file = os.environ.get("PARAMS_FILE", "/tmp/params.json")
|
||||||
with open(params_file) as f:
|
with open(params_file) as f:
|
||||||
params = json.load(f)
|
params = json.load(f)
|
||||||
|
|
||||||
|
# 方式二:从 sys.argv[1] 读取
|
||||||
|
if len(sys.argv) > 1:
|
||||||
|
params = json.loads(sys.argv[1])
|
||||||
|
|
||||||
# 处理逻辑...
|
# 处理逻辑...
|
||||||
result = {"status": "ok", "value": 42}
|
result = {"status": "ok", "value": 42}
|
||||||
print(json.dumps(result))
|
print(json.dumps(result))
|
||||||
```
|
```
|
||||||
|
|
||||||
## resolved_params
|
|
||||||
|
|
||||||
提供参数解析后的默认值,执行器直接使用这些值:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
resolved_params:
|
|
||||||
- step_index: 0
|
|
||||||
step_name: 我的步骤
|
|
||||||
params:
|
|
||||||
input_path: "/data/input.shp"
|
|
||||||
threshold: 0.5
|
|
||||||
```
|
|
||||||
|
|||||||
Reference in New Issue
Block a user