Workflows let you chain AI models, connect datasets, and build intelligent pipelines. Automate complex multi-step processes visually or programmatically.
What Are Workflows?
A workflow is a directed graph of nodes connected by edges. Each node performs an operation—running a model, reading a dataset, transforming data—and passes results to the next node.
graph LR
A[Start] --> B[Speech-to-Text]
B --> C[NER Model]
C --> D[LLM Analysis]
D --> E[Output Dataset]
Why Use Workflows?
Use Case
Example
Multi-model pipelines
OCR → NER → Classification
Document processing
Audio → Transcript → Summary
Data enrichment
Images → Descriptions → Metadata
Quality assurance
Multiple models voting on results
Quick Example
Create a Workflow
Navigate to Workflows in the sidebar
Click New Workflow
Drag nodes onto the canvas:
Start node (entry point)
Model node (your STT model)
Model node (your NER model)
Dataset node (output storage)
Connect nodes by dragging edges
Click Save
Create a Workflow
fromseemeimportClientclient=Client()## Create workflowworkflow=client.create_workflow(name="Document Analysis Pipeline",description="STT → NER → Summary")# Create a versionversion=client.create_workflow_version(workflow_id=workflow.id,name="v1")# Add nodesstt_node=client.create_workflow_node(version_id=version.id,name="Transcribe Audio",entity_type="model",entity_id=stt_model.id,config={"input_template":"{{input}}"})ner_node=client.create_workflow_node(version_id=version.id,name="Extract Entities",entity_type="model",entity_id=ner_model.id,config={"input_template":"{{stt_node}}"})# Connect nodesclient.create_workflow_edge(version_id=version.id,begin_node_id=stt_node.id,end_node_id=ner_node.id,edge_type="data")
Execute a Workflow
# Execute workflow with text inputexecution=client.execute_workflow(workflow_id=workflow.id,input_mode="single",single_input="Analyze this customer call recording...")# Or with a fileexecution=client.execute_workflow(workflow_id=workflow.id,input_mode="single",item="./recording.mp3")# Monitor progressimporttimewhileexecution.statusin["pending","running"]:time.sleep(5)execution=client.get_workflow_execution(workflow_id=workflow.id,execution_id=execution.id)print(f"Status: {execution.status}, Progress: {execution.progress}")# Get resultsprint(execution.results)