式
定義された入力変数と設定済みルールに基づいて、特定の出力を作成します。
ワークフロー内で、入力変数に対する条件を評価し、必要に応じて操作でデータを変換し、どの条件に一致するかに基づいて異なる出力を返す switch-case 文を使って、条件ロジックとビジネスルールを作成します。これにより、条件分岐の実行、ビジネスロジックの実装、ルールベースの意思決定、動的な出力生成ワークフローが可能になります。
このブロックの仕組み
このブロックは、プログラミングにおける switch-case や if-else-if 文に似た条件ロジックを実装します。このブロックは、
ワークフローステップから、名前付き変数の辞書として入力データを受け取ります
必要に応じて、次の操作を使ってデータ変換を適用します:
条件評価の前に、データ変数に対して操作を実行します
Property Definition ブロックと同じ操作システムを使用します
条件用の変数を準備するために、データを変換します(例: プロパティの抽出、フィルタリング、選択)
変換後の値を、条件で使用する変数として保存します
switch-case 文を順番に評価します:
一致するものが見つかるまで、各 case の条件を順番にテストします
最初に一致した case で停止し、その結果を返します
どの case にも一致しない場合は、デフォルト結果を返します
柔軟な式システムを使って条件を評価します:
二項ステートメント: 2 つの値を演算子(==, !=, >, <, >=, <=, contains, startsWith, endsWith, in, any in, all in)で比較します
単項ステートメント: 単一の値をテストします(Exists、DoesNotExist、is True、is False、is empty、is not empty)
ステートメントグループ: 複数のステートメントを AND/OR 演算子で組み合わせ、複雑な条件を作成します
条件では、変数名(DynamicOperand)を参照することも、リテラル値(StaticOperand)を使用することもできます
一致した case に基づいて結果を返します:
静的結果:
case で定義された固定値を返します(例: "PASS", "FAIL", 数値、文字列)
動的結果:
変数から値を返します(任意の入力変数を参照可能)
必要に応じて、変数を返す前に操作を適用して変換します
計算済みまたは抽出済みの値を出力として返せるようにします
デフォルト case を処理します:
どの case 条件にも一致しない場合、デフォルト結果を返します
デフォルトも case の結果と同様に、静的または動的にできます
このブロックは、データ変換操作と柔軟な条件評価を組み合わせることで、複雑な条件ロジックを実現します。条件では、変数の比較、存在確認、所属判定、文字列操作、複数条件の論理演算子による組み合わせが可能です。これにより、ビジネスルールの実装、検証ロジック、多数の基準に基づく分類、条件付きデータ変換に強力です。
一般的な使用例
ビジネスロジックの実装: 条件付きのビジネスルールと検証ロジックを実装します(例: 検出結果が参照と一致するか検証する、品質チェックを実装する、ビジネスルールを適用する)ことで、ビジネスロジックのワークフローを可能にします
条件付き分類: 複数の条件と基準に基づいてデータを分類します(例: プロパティに基づいて検出を分類する、条件で結果をカテゴリ分けする、多基準分類を実装する)ことで、条件付き分類ワークフローを可能にします
検証と品質管理: 参照値やしきい値に照らしてデータや予測を検証します(例: 予測が期待クラスに一致するか検証する、品質しきい値を確認する、準拠性を検証する)ことで、検証ワークフローを可能にします
ルールベースの意思決定: 複雑なルールセットに基づいて意思決定を行います(例: 複数の基準に基づいて承認/却下する、条件に基づいてデータをルーティングする、ルールセットを使って判断する)ことで、ルールベースの意思決定ワークフローを可能にします
動的出力生成: 入力条件に基づいて異なる出力を生成します(例: 条件に応じて異なる値を返す、条件付き出力を生成する、動的な結果を作成する)ことで、動的出力ワークフローを可能にします
複数条件フィルタリング: 複数の条件を使って複雑なフィルタリングロジックを実装します(例: 複数の基準でフィルタリングする、複雑な条件付きフィルターを適用する、多要素フィルタリングを実装する)ことで、条件付きフィルタリングワークフローを可能にします
他のブロックへの接続
このブロックはワークフローステップからデータを受け取り、条件付き出力を生成します:
モデルまたは分析ブロックの後で 予測や結果に条件ロジックを実装するため(例: 予測を検証する、結果を分類する、条件付きルールを適用する)ことで、条件ロジックのワークフローを可能にします
Property Definition ブロックの後で 抽出したプロパティを条件で使用するため(例: 抽出値を条件で使用する、抽出したプロパティを比較する、抽出データに対してロジックを実装する)ことで、プロパティから条件へのワークフローを可能にします
ロジックブロックの前 Continue If のように、条件付き入力を提供するため(例: フィルタリング用の条件付き値を提供する、判断用の条件付き入力を供給する)ことで、式からロジックへのワークフローを可能にします
データ保存ブロックの前 ストレージ用にデータを条件付きで整形または変換するため(例: ストレージ用に条件付きで整形する、条件付き変換を適用する、条件付き出力を準備する)ことで、条件付き保存ワークフローを可能にします
通知ブロックの前 条件付き通知を送信するため(例: 条件付きアラートを送信する、条件に基づいて通知する、条件付き通知をトリガーする)ことで、条件付き通知ワークフローを可能にします
ワークフロー出力において 条件付きの最終出力を提供するため(例: 条件付きワークフロー出力、動的な結果生成、条件付き出力フォーマット)ことで、条件付き出力ワークフローを可能にします
要件
このブロックは、キーが変数名、値がワークフローステップからのデータである辞書形式の入力データを必要とします。switch パラメータは、条件と結果を持つ case を定義します。条件は、二項比較(==, !=, >, <, >=, <=, contains, in など)、単項テスト(Exists、is empty など)、および論理結合(AND/OR)をサポートします。データ操作は任意で、Property Definition ブロックと同じ操作システムを使用します。このブロックは case を順番に評価し、最初に一致した case の結果を返します。一致する case がない場合はデフォルト結果を返します。結果は、静的値または変数からの動的値(必要に応じて操作を適用)にできます。
型識別子
ステップで次の識別子を使用してください "type" フィールド: roboflow_core/expression@v1 ワークフローにこのブロックをステップとして追加するには。
プロパティ
名前
型
説明
参照
name
str
このステップの一意の識別子を入力してください。
❌
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]]]
条件評価の前にデータ変数を変換するための、オプションの操作辞書です。キーはデータ内の変数名、値は操作のリストです(Property Definition ブロックと同じ)。操作は、条件で使用する前に変数を変換するために適用されます。プロパティの抽出、フィルタリング、評価前のデータ変換に便利です。空の辞書(デフォルト)では変換は適用されません。
❌
switch
CasesDefinition
条件と結果を含む case からなる switch-case ロジック定義です。各 case には条件(Binary/Unary ステートメントを持つ StatementGroup)と結果(静的値または動的変数)があります。case は順番に評価され、最初に一致した case の結果が返されます。どの case にも一致しない場合はデフォルト結果が返されます。AND/OR 演算子、比較演算子(==, !=, >, <, >=, <=)、文字列操作(contains, startsWith, endsWith)、所属テスト(in, any in, all in)、存在テスト(Exists、is empty)を含む複雑な条件をサポートします。
❌
この 参照 列は、で利用可能な動的値を使ってプロパティをパラメータ化できる可能性を示します ワークフロー 実行時。参照 バインディング 詳細は。
入力と出力のバインディング
利用可能な接続は、そのバインディング種別によって異なります。どのバインディング種別が 式 のバージョン v1 あるか確認してください。
最終更新
役に立ちましたか?