Expression¶
Class: ExpressionBlockV1
Source: inference.core.workflows.core_steps.formatters.expression.v1.ExpressionBlockV1
Creates specific output based on defined input variables and configured rules - which is useful while creating business logic in workflows.
Based on configuration, block takes input data, optionally performs operation on data, save it as variables and evaluate switch-case like statements to get the final result.
Type identifier¶
Use the following identifier in step "type" field: roboflow_core/expression@v1to add the block as
as step in your workflow.
Properties¶
| Name | Type | Description | Refs |
|---|---|---|---|
name |
str |
Enter a unique identifier for this step.. | ❌ |
data_operations |
Dict[str, List[Union[ClassificationPropertyExtract, ConvertDictionaryToJSON, ConvertImageToBase64, ConvertImageToJPEG, DetectionsFilter, DetectionsOffset, DetectionsPropertyExtract, DetectionsRename, DetectionsSelection, DetectionsShift, DetectionsToDictionary, Divide, ExtractDetectionProperty, ExtractFrameMetadata, ExtractImageProperty, LookupTable, Multiply, NumberRound, NumericSequenceAggregate, PickDetectionsByParentClass, RandomNumber, SequenceAggregate, SequenceApply, SequenceElementsCount, SequenceLength, SequenceMap, SortDetections, StringMatches, StringSubSequence, StringToLowerCase, StringToUpperCase, TimestampToISOFormat, ToBoolean, ToNumber, ToString]]] |
UQL definitions of operations to be performed on defined data before switch-case instruction. | ❌ |
switch |
CasesDefinition |
Define the logic to be executed.. | ❌ |
The Refs column marks possibility to parametrise the property with dynamic values available
in workflow runtime. See Bindings for more info.
Available Connections¶
Compatible Blocks
Check what blocks you can connect to Expression in version v1.
- inputs:
Label Visualization,Blur Visualization,Background Color Visualization,Contrast Equalization,Detections Filter,Reference Path Visualization,Stability AI Outpainting,Image Slicer,Pixelate Visualization,Single-Label Classification Model,Clip Comparison,CSV Formatter,Perception Encoder Embedding Model,Seg Preview,Overlap Filter,Image Preprocessing,Rate Limiter,Color Visualization,SIFT Comparison,Email Notification,Cache Set,Dominant Color,Property Definition,Circle Visualization,Object Detection Model,QR Code Detection,Moondream2,VLM as Classifier,Model Monitoring Inference Aggregator,OCR Model,Absolute Static Crop,Path Deviation,LMM,Time in Zone,Morphological Transformation,Gaze Detection,Detections Consensus,Crop Visualization,OpenAI,Florence-2 Model,Barcode Detection,Classification Label Visualization,Byte Tracker,Segment Anything 2 Model,Cosine Similarity,SIFT Comparison,Time in Zone,YOLO-World Model,PTZ Tracking (ONVIF).md),Detection Offset,Icon Visualization,Detections Transformation,Distance Measurement,Data Aggregator,VLM as Detector,Line Counter Visualization,Grid Visualization,Halo Visualization,Size Measurement,Dynamic Zone,Time in Zone,Twilio SMS Notification,Detections Stitch,Llama 3.2 Vision,Image Blur,Velocity,Slack Notification,Byte Tracker,OpenAI,First Non Empty Or Default,Multi-Label Classification Model,Image Slicer,OpenAI,Environment Secrets Store,Dynamic Crop,Pixel Color Count,Detections Merge,Mask Visualization,Stitch Images,SIFT,Google Vision OCR,LMM For Classification,Keypoint Visualization,Bounding Box Visualization,SAM 3,Byte Tracker,SAM 3,Qwen2.5-VL,Object Detection Model,Path Deviation,Detections Combine,Anthropic Claude,Image Contours,Polygon Zone Visualization,Ellipse Visualization,Line Counter,Clip Comparison,Email Notification,Expression,Depth Estimation,Roboflow Dataset Upload,Image Convert Grayscale,CogVLM,Roboflow Custom Metadata,SAM 3,VLM as Detector,Multi-Label Classification Model,Buffer,Stitch OCR Detections,Keypoint Detection Model,Bounding Rectangle,Keypoint Detection Model,Line Counter,JSON Parser,Camera Calibration,CLIP Embedding Model,Polygon Visualization,Detections Classes Replacement,Cache Get,Identify Changes,Triangle Visualization,Template Matching,Roboflow Dataset Upload,Anthropic Claude,Model Comparison Visualization,Corner Visualization,Florence-2 Model,Google Gemini,Google Gemini,EasyOCR,Delta Filter,SmolVLM2,Stability AI Image Generation,Identify Outliers,QR Code Generator,Relative Static Crop,Dot Visualization,Dimension Collapse,Continue If,Local File Sink,Instance Segmentation Model,Stability AI Inpainting,Single-Label Classification Model,Camera Focus,Detections Stabilizer,Webhook Sink,Image Threshold,Instance Segmentation Model,Perspective Correction,OpenAI,VLM as Classifier,Trace Visualization - outputs:
Label Visualization,Blur Visualization,Background Color Visualization,Contrast Equalization,Detections Filter,Reference Path Visualization,Stability AI Outpainting,Image Slicer,Pixelate Visualization,Single-Label Classification Model,Clip Comparison,CSV Formatter,Perception Encoder Embedding Model,Seg Preview,Overlap Filter,Image Preprocessing,Rate Limiter,Color Visualization,SIFT Comparison,Email Notification,Cache Set,Dominant Color,Property Definition,Circle Visualization,Object Detection Model,QR Code Detection,Moondream2,VLM as Classifier,Model Monitoring Inference Aggregator,OCR Model,Absolute Static Crop,Path Deviation,LMM,Time in Zone,Morphological Transformation,Gaze Detection,Detections Consensus,Crop Visualization,OpenAI,Florence-2 Model,Barcode Detection,Classification Label Visualization,Byte Tracker,Segment Anything 2 Model,Cosine Similarity,SIFT Comparison,Time in Zone,YOLO-World Model,PTZ Tracking (ONVIF).md),Detection Offset,Icon Visualization,Detections Transformation,Distance Measurement,Data Aggregator,VLM as Detector,Line Counter Visualization,Grid Visualization,Halo Visualization,Size Measurement,Dynamic Zone,Time in Zone,Twilio SMS Notification,Detections Stitch,Llama 3.2 Vision,Image Blur,Slack Notification,Velocity,OpenAI,Byte Tracker,First Non Empty Or Default,Multi-Label Classification Model,Image Slicer,OpenAI,Dynamic Crop,Pixel Color Count,Mask Visualization,Detections Merge,Stitch Images,SIFT,Google Vision OCR,LMM For Classification,Keypoint Visualization,Bounding Box Visualization,SAM 3,Byte Tracker,SAM 3,Qwen2.5-VL,Object Detection Model,Path Deviation,Detections Combine,Anthropic Claude,Image Contours,Polygon Zone Visualization,Ellipse Visualization,Line Counter,Email Notification,Clip Comparison,Expression,Depth Estimation,Roboflow Dataset Upload,SAM 3,VLM as Detector,Multi-Label Classification Model,Image Convert Grayscale,Roboflow Custom Metadata,CogVLM,Buffer,Keypoint Detection Model,Stitch OCR Detections,Bounding Rectangle,Keypoint Detection Model,Line Counter,JSON Parser,Camera Calibration,Polygon Visualization,CLIP Embedding Model,Detections Classes Replacement,Cache Get,Identify Changes,Triangle Visualization,Template Matching,Roboflow Dataset Upload,Anthropic Claude,Model Comparison Visualization,Corner Visualization,Florence-2 Model,Google Gemini,Google Gemini,EasyOCR,Delta Filter,SmolVLM2,Stability AI Image Generation,Identify Outliers,QR Code Generator,Relative Static Crop,Dot Visualization,Dimension Collapse,Continue If,Local File Sink,Instance Segmentation Model,Stability AI Inpainting,Single-Label Classification Model,Camera Focus,Detections Stabilizer,Webhook Sink,Image Threshold,Instance Segmentation Model,Perspective Correction,VLM as Classifier,OpenAI,Trace Visualization
Input and Output Bindings¶
The available connections depend on its binding kinds. Check what binding kinds
Expression in version v1 has.
Bindings
Example JSON definition of step Expression in version v1
{
"name": "<your_step_name_here>",
"type": "roboflow_core/expression@v1",
"data": {
"predictions": "$steps.model.predictions",
"reference": "$inputs.reference_class_names"
},
"data_operations": {
"predictions": [
{
"property_name": "class_name",
"type": "DetectionsPropertyExtract"
}
]
},
"switch": {
"cases": [
{
"condition": {
"statements": [
{
"comparator": {
"type": "=="
},
"left_operand": {
"operand_name": "class_name",
"type": "DynamicOperand"
},
"right_operand": {
"operand_name": "reference",
"type": "DynamicOperand"
},
"type": "BinaryStatement"
}
],
"type": "StatementGroup"
},
"result": {
"type": "StaticCaseResult",
"value": "PASS"
},
"type": "CaseDefinition"
}
],
"default": {
"type": "StaticCaseResult",
"value": "FAIL"
},
"type": "CasesDefinition"
}
}