For the complete documentation index, see llms.txt. This page is also available as Markdown.

定義された入力変数と設定済みルールに基づいて、特定の出力を作成します。

ワークフロー内で、入力変数に対する条件を評価し、必要に応じて操作でデータを変換し、どの条件に一致するかに基づいて異なる出力を返す switch-case 文を使って、条件ロジックとビジネスルールを作成します。これにより、条件分岐の実行、ビジネスロジックの実装、ルールベースの意思決定、動的な出力生成ワークフローが可能になります。

このブロックの仕組み

このブロックは、プログラミングにおける switch-case や if-else-if 文に似た条件ロジックを実装します。このブロックは、

  1. ワークフローステップから、名前付き変数の辞書として入力データを受け取ります

  2. 必要に応じて、次の操作を使ってデータ変換を適用します:

    • 条件評価の前に、データ変数に対して操作を実行します

    • Property Definition ブロックと同じ操作システムを使用します

    • 条件用の変数を準備するために、データを変換します(例: プロパティの抽出、フィルタリング、選択)

    • 変換後の値を、条件で使用する変数として保存します

  3. switch-case 文を順番に評価します:

    • 一致するものが見つかるまで、各 case の条件を順番にテストします

    • 最初に一致した case で停止し、その結果を返します

    • どの case にも一致しない場合は、デフォルト結果を返します

  4. 柔軟な式システムを使って条件を評価します:

    • 二項ステートメント: 2 つの値を演算子(==, !=, >, <, >=, <=, contains, startsWith, endsWith, in, any in, all in)で比較します

    • 単項ステートメント: 単一の値をテストします(Exists、DoesNotExist、is True、is False、is empty、is not empty)

    • ステートメントグループ: 複数のステートメントを AND/OR 演算子で組み合わせ、複雑な条件を作成します

    • 条件では、変数名(DynamicOperand)を参照することも、リテラル値(StaticOperand)を使用することもできます

  5. 一致した case に基づいて結果を返します:

    静的結果:

    • case で定義された固定値を返します(例: "PASS", "FAIL", 数値、文字列)

    動的結果:

    • 変数から値を返します(任意の入力変数を参照可能)

    • 必要に応じて、変数を返す前に操作を適用して変換します

    • 計算済みまたは抽出済みの値を出力として返せるようにします

  6. デフォルト 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 あるか確認してください。

入力と出力のバインディング
  • 入力

    • データ (*): ワークフローステップからのデータを含む、名前付き変数の辞書。変数名は条件と結果で使用されます。キーは変数名、値はワークフローステップの出力を参照するセレクターです。変数は条件や動的結果で参照できます。例: {'predictions': '$steps.model.predictions', 'reference': '$inputs.reference_class_names'} は 'predictions' と 'reference' という変数を作成します。

  • 出力

    • 出力 (*):任意の要素に相当します。

JSON 定義の例

最終更新

役に立ちましたか?