返回 Skill 列表
extension
分类: 开发与工程无需 API Key

synapse-specialized-actions

解释特定工作流程的专用Synapse动作类。当用户提到“BaseTrainAction”、“BaseExportAction”、“BaseUploadAction”、“BaseInferenceAction”、“BaseDeploymentAction”、“AddTaskDataAction”、“训练动作”、“导出动作”、“上传动作”、“推理动作”、“部署动作”、“预标注”、“add_task_data”、“autolog”、“获取数据集”、“创建模型”,或需要特定工作流的动作开发帮助时使用。

person作者: jakexiaohubgithub

Specialized Action Classes

Synapse SDK provides specialized base classes for common ML workflows. Each extends BaseAction with workflow-specific helper methods and default settings.

Available Specialized Actions

| Class | Category | Purpose | |-------|----------|---------| | BaseTrainAction | NEURAL_NET | Training models | | BaseExportAction | EXPORT | Exporting data | | BaseUploadAction | UPLOAD | Uploading files | | BaseInferenceAction | NEURAL_NET | Running inference | | BaseDeploymentAction | - | Ray Serve deployment | | AddTaskDataAction | PRE_ANNOTATION | Pre-annotation workflows |

Quick Comparison

# Training - autolog, get_dataset, create_model
class TrainAction(BaseTrainAction[TrainParams]):
    def execute(self) -> dict:
        self.autolog('ultralytics')  # Auto-log metrics
        dataset = self.get_dataset()
        # ... train ...
        return self.create_model('./model.pt')

# Export - get_filtered_results
class ExportAction(BaseExportAction[ExportParams]):
    def get_filtered_results(self, filters: dict) -> tuple[Any, int]:
        return self.client.get_assignments(filters)

# Upload - step-based workflow required
class UploadAction(BaseUploadAction[UploadParams]):
    def setup_steps(self, registry: StepRegistry[UploadContext]) -> None:
        registry.register(InitStep())
        registry.register(UploadFilesStep())

# Inference - download_model, load_model, infer
class InferAction(BaseInferenceAction[InferParams]):
    def execute(self) -> dict:
        model = self.load_model(self.params.model_id)
        return {'predictions': self.infer(model, self.params.inputs)}

# Pre-annotation - convert_data_from_file, convert_data_from_inference
class PreAnnotateAction(AddTaskDataAction):
    def convert_data_from_file(self, primary_url, ...) -> dict:
        return {'annotations': [...]}

Execution Modes

All specialized actions (except Deployment) support two modes:

  1. Simple Execute: Override execute() for straightforward workflows
  2. Step-based: Override setup_steps() for complex multi-step workflows with rollback
# Simple mode
class SimpleTrainAction(BaseTrainAction[Params]):
    def execute(self) -> dict:
        return {'weights_path': '/model.pt'}

# Step-based mode
class StepTrainAction(BaseTrainAction[Params]):
    def setup_steps(self, registry: StepRegistry[TrainContext]) -> None:
        registry.register(LoadDatasetStep())
        registry.register(TrainStep())
        registry.register(UploadModelStep())

Detailed References