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:
Background Color Visualization,Stitch Images,Size Measurement,Image Slicer,VLM as Classifier,Detections Transformation,Corner Visualization,Identify Outliers,Mask Visualization,CLIP Embedding Model,Line Counter,Barcode Detection,Model Comparison Visualization,Email Notification,Local File Sink,Time in Zone,Florence-2 Model,Multi-Label Classification Model,Ellipse Visualization,Rate Limiter,Camera Focus,OCR Model,Label Visualization,SmolVLM2,LMM For Classification,Blur Visualization,Dot Visualization,Perspective Correction,Google Vision OCR,Line Counter,Llama 3.2 Vision,Detections Stabilizer,Slack Notification,Cosine Similarity,Image Blur,Stitch OCR Detections,Depth Estimation,Stability AI Outpainting,Halo Visualization,Qwen2.5-VL,Stability AI Inpainting,Continue If,CogVLM,Classification Label Visualization,VLM as Detector,Instance Segmentation Model,Byte Tracker,Image Convert Grayscale,Perception Encoder Embedding Model,Polygon Zone Visualization,Clip Comparison,Detections Stitch,Crop Visualization,Image Slicer,Cache Get,YOLO-World Model,Detections Merge,Multi-Label Classification Model,Icon Visualization,Seg Preview,Color Visualization,Path Deviation,Buffer,Circle Visualization,Bounding Rectangle,CSV Formatter,Time in Zone,SIFT Comparison,Delta Filter,Single-Label Classification Model,SIFT,Line Counter Visualization,PTZ Tracking (ONVIF).md),Image Preprocessing,Trace Visualization,SIFT Comparison,LMM,Dynamic Zone,Model Monitoring Inference Aggregator,Detections Classes Replacement,Camera Calibration,Object Detection Model,QR Code Detection,Keypoint Detection Model,Pixelate Visualization,Anthropic Claude,Relative Static Crop,Google Gemini,Triangle Visualization,Segment Anything 2 Model,Environment Secrets Store,QR Code Generator,Byte Tracker,Dominant Color,Time in Zone,Pixel Color Count,Roboflow Custom Metadata,Cache Set,Florence-2 Model,Identify Changes,Single-Label Classification Model,Overlap Filter,Detection Offset,Stability AI Image Generation,EasyOCR,Absolute Static Crop,SAM 3,Morphological Transformation,Velocity,Clip Comparison,Image Threshold,Byte Tracker,First Non Empty Or Default,Polygon Visualization,OpenAI,Grid Visualization,Roboflow Dataset Upload,Path Deviation,Distance Measurement,Template Matching,Email Notification,Bounding Box Visualization,OpenAI,Keypoint Detection Model,Object Detection Model,Expression,Gaze Detection,Moondream2,Property Definition,Roboflow Dataset Upload,Dimension Collapse,JSON Parser,Keypoint Visualization,Contrast Equalization,Image Contours,Instance Segmentation Model,Detections Filter,OpenAI,VLM as Classifier,Detections Combine,Reference Path Visualization,Twilio SMS Notification,VLM as Detector,Webhook Sink,Detections Consensus,Data Aggregator,Dynamic Crop - outputs:
Background Color Visualization,Stitch Images,Image Slicer,Size Measurement,Identify Outliers,Detections Transformation,Corner Visualization,VLM as Classifier,Mask Visualization,CLIP Embedding Model,Line Counter,Barcode Detection,Model Comparison Visualization,Local File Sink,Email Notification,Time in Zone,Florence-2 Model,Multi-Label Classification Model,Ellipse Visualization,Rate Limiter,Camera Focus,OCR Model,Label Visualization,SmolVLM2,LMM For Classification,Blur Visualization,Dot Visualization,Perspective Correction,Google Vision OCR,Line Counter,Llama 3.2 Vision,Detections Stabilizer,Slack Notification,Cosine Similarity,Image Blur,Stitch OCR Detections,Stability AI Outpainting,Depth Estimation,Halo Visualization,Qwen2.5-VL,Stability AI Inpainting,Continue If,CogVLM,Classification Label Visualization,VLM as Detector,Instance Segmentation Model,Byte Tracker,Image Convert Grayscale,Polygon Zone Visualization,Perception Encoder Embedding Model,Clip Comparison,Detections Stitch,Crop Visualization,Image Slicer,Cache Get,YOLO-World Model,Detections Merge,Multi-Label Classification Model,Seg Preview,Icon Visualization,Color Visualization,Path Deviation,Buffer,Circle Visualization,Bounding Rectangle,CSV Formatter,Time in Zone,SIFT Comparison,Delta Filter,Single-Label Classification Model,SIFT,Line Counter Visualization,PTZ Tracking (ONVIF).md),Image Preprocessing,Trace Visualization,SIFT Comparison,LMM,Dynamic Zone,Model Monitoring Inference Aggregator,Detections Classes Replacement,Camera Calibration,Object Detection Model,QR Code Detection,Keypoint Detection Model,Pixelate Visualization,Anthropic Claude,Relative Static Crop,Google Gemini,Triangle Visualization,Segment Anything 2 Model,QR Code Generator,Byte Tracker,Dominant Color,Time in Zone,Pixel Color Count,Roboflow Custom Metadata,Cache Set,Florence-2 Model,Identify Changes,Single-Label Classification Model,Overlap Filter,Detection Offset,Stability AI Image Generation,EasyOCR,Absolute Static Crop,SAM 3,Morphological Transformation,Velocity,Clip Comparison,Image Threshold,Byte Tracker,First Non Empty Or Default,Polygon Visualization,OpenAI,Grid Visualization,Roboflow Dataset Upload,Path Deviation,Template Matching,Distance Measurement,Email Notification,Bounding Box Visualization,OpenAI,Keypoint Detection Model,Object Detection Model,Expression,Gaze Detection,Moondream2,Property Definition,Roboflow Dataset Upload,JSON Parser,Dimension Collapse,Keypoint Visualization,Contrast Equalization,Image Contours,Instance Segmentation Model,Detections Filter,OpenAI,VLM as Classifier,Detections Combine,Reference Path Visualization,Twilio SMS Notification,VLM as Detector,Webhook Sink,Detections Consensus,Data Aggregator,Dynamic Crop
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"
}
}