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