[ PROMPT_NODE_26734 ]
workflow-creation
[ SKILL_DOCUMENTATION ]
# 工作流创建与注册
## 概述
Latch SDK 支持使用 Python 装饰器定义无服务器生物信息学工作流,并实现自动容器化和 UI 生成。
## 安装
安装 Latch SDK:
bash
python3 -m pip install latch
**先决条件:**
- 必须在本地安装并运行 Docker
- 拥有 Latch 账户凭据
## 初始化新工作流
创建新的工作流模板:
bash
latch init
这将生成一个包含以下内容的工作流目录:
- `wf/__init__.py` - 主工作流定义
- `Dockerfile` - 容器配置
- `version` - 版本追踪文件
## 工作流定义结构
### 基础工作流示例
python
from latch import workflow
from latch.types import LatchFile, LatchDir
@workflow
def my_workflow(input_file: LatchFile, output_dir: LatchDir) -> LatchFile:
"""
显示在 UI 中的工作流描述
Args:
input_file: 输入文件描述
output_dir: 输出目录描述
"""
return process_task(input_file, output_dir)
### 任务定义
任务是工作流中独立的计算步骤:
python
from latch import small_task, large_task
@small_task
def process_task(input_file: LatchFile, output_dir: LatchDir) -> LatchFile:
"""任务级计算"""
# 在此处编写处理逻辑
return output_file
### 任务资源装饰器
SDK 为不同的资源需求提供了多种任务装饰器:
- `@small_task` - 轻量级任务的默认资源
- `@large_task` - 增加内存和 CPU
- `@small_gpu_task` - 资源占用最小的 GPU 任务
- `@large_gpu_task` - 资源占用最大的 GPU 任务
- `@custom_task` - 自定义资源规格
## 注册工作流
将工作流注册到 Latch 平台:
bash
latch register
注册过程:
1. 构建包含所有依赖项的 Docker 容器
2. 序列化工作流代码
3. 将容器上传至镜像仓库
4. 自动生成无代码 UI
5. 使工作流在平台上可用
### 注册输出
注册成功后:
- 工作流出现在 Latch 工作区中
- 自动生成带有参数表单的 UI
- 版本被追踪并容器化
- 工作流可立即执行
## 支持多种流水线语言
Latch 支持上传现有流水线,格式包括:
- **Python** - 原生 Latch SDK 工作流