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

케이스 분기

입력 값에 따라 실행을 여러 분기 중 하나로 라우팅합니다.

프로그램의 switch-case 문과 유사하게, 입력 값을 사례 값 집합과 비교하여 여러 브랜치 중 하나로 워크플로 실행을 라우팅함으로써, 여러 Continue If 블록을 연결하지 않고도 다중 분기, 값 기반 라우팅, 의사결정 트리를 가능하게 합니다.

이 블록의 작동 방식

이 블록은 단일 입력 값을 사례 매핑의 키와 비교하여 첫 번째로 일치하는 사례에 연결된 단계로 실행을 보냅니다. 이 블록은:

  1. 하나의 입력(일반적으로 워크플로 입력 또는 단계 출력을 참조하는 선택기, 예: 분류 결과)을 받아 문자열로 변환합니다

  2. 문자열을 다음에서 찾습니다 cases 매핑에서 찾습니다. 여기서 각 키는 사례 값이고 각 값은 해당 사례가 일치할 때 실행할 단계입니다(예: {"red": "$steps.on_red", "blue": "$steps.on_blue"})

  3. 만약 case_insensitive 가 활성화되면 비교는 대소문자를 무시합니다

  4. 사례가 일치하면 실행은 해당 사례의 단계로 계속되며 다른 모든 브랜치는 종료됩니다

  5. 어떤 사례도 일치하지 않으면 실행은 default_next_steps

  6. 에 나열된 단계로 계속됩니다. 사례가 일치하지 않고 default_next_steps 가 비어 있으면 브랜치는 종료됩니다

입력 값은 일치하기 전에 문자열로 변환되므로, 문자열이 아닌 값은 해당 문자열 표현과 일치합니다: True 키와 일치합니다 "True", 1.0 과 일치합니다 "1.0" (아닌 "1"), 그리고 누락/None 값은 "None". 각 대상 단계는 전체에서 최대 한 번만 나타날 수 있습니다. casesdefault_next_steps - 여러 사례 값을 동일한 로직으로 라우팅하려면 각 사례를 자체 단계에 연결하거나, 상위 단계에서 값을 정규화하세요(예: Expression 블록 사용).

일반적인 사용 사례

  • 분류 결과에 따른 라우팅: 분류 모델이 예측한 상위 클래스를 기준으로 이미지를 서로 다른 처리 경로로 보냅니다(예: "damaged" → 알림 브랜치, "ok" → 로깅 브랜치, 그 외 모든 경우 → 기본 검토 브랜치)

  • 모드 기반 파이프라인: 워크플로 입력 파라미터(예: $inputs.mode)을 워크플로를 편집하지 않고 런타임에 대체 처리 브랜치 중에서 선택하는 데 사용합니다

  • 다중 경로 알림: 워크플로에서 이전에 계산된 심각도 또는 카테고리 값에 따라 서로 다른 알림 블록(이메일, Slack, 웹훅)으로 라우팅합니다

  • 연속된 조건 대체: 동일한 값을 서로 다른 상수와 비교하는 Continue If 블록의 사다리를 더 읽기 쉬운 하나의 블록으로 압축합니다

다른 블록에 연결하기

이 블록은 워크플로 실행 흐름을 제어하며 다음과 같이 연결할 수 있습니다:

  • 분류 또는 감지 블록 다음에 예측 클래스, 개수 또는 기타 예측 속성에 따라 분기합니다(종종 분기 기준 값을 추출하는 Property Definition 또는 Expression 블록을 통해)

  • 워크플로 입력 뒤에 런타임 파라미터에서 브랜치를 선택합니다

  • 모든 하위 블록보다 앞에서 (모델, 알림, 싱크) 중 특정 사례에서만 실행되어야 하는 것 - 각 사례 대상은 자체 실행 브랜치의 시작점이 됩니다

  • 기본 브랜치와 함께 를 통해 연결됨 default_next_steps 일치하지 않는 값을 처리하거나, 아무것도 일치하지 않으면 단순히 중지하려면 비워 둡니다

유형 식별자

단계에서 다음 식별자를 사용하세요 "type" 필드: roboflow_core/switch_case@v1 워크플로우에 이 블록을 단계로 추가하려면.

속성

이름

유형

설명

참조

name

str

이 단계에 대한 고유 식별자를 입력하세요..

Union[bool, float, int, str]

사례 키와 비교할 값입니다. 일반적으로 워크플로 입력이나 단계 출력을 참조하는 선택기(예: $inputs.mode 또는 $steps.classifier.top)입니다. 비교 전에 값은 문자열로 변환되므로, 불리언은 키 'True'/'False'와, 1.0은 '1.0'과, None 값은 'None'과 일치합니다..

case_insensitive

bool

활성화되면 사례 값이 대소문자를 무시하고 일치합니다(예: 값 'RED'는 사례 키 'red'와 일치합니다)..

참조 열은 워크플로우 런타임에서 사용 가능한 동적 값으로 속성을 매개변수화할 수 있는 가능성을 나타냅니다 워크플로우 런타임입니다. 자세한 내용은 바인딩 을 참조하세요.

입력 및 출력 바인딩

사용 가능한 연결은 바인딩 유형에 따라 달라집니다. 어떤 바인딩 유형인지 확인하세요 스위치 케이스 버전 v1 을 가지고 있는지.

입력 및 출력 바인딩
  • 입력

    • (*): 사례 키와 비교할 값입니다. 일반적으로 워크플로 입력이나 단계 출력을 참조하는 선택기(예: $inputs.mode 또는 $steps.classifier.top)입니다. 비교 전에 값은 문자열로 변환되므로, 불리언은 키 'True'/'False'와, 1.0은 '1.0'과, None 값은 'None'과 일치합니다..

    • cases (단계): 사례 값과, 일치할 때 실행해야 하는 단계의 매핑 과 일치합니다. 예: {"red": "$steps.on_red", "blue": "$steps.on_blue"}. 각 대상 단계는 전체에서 최대 한 번만 나타날 수 있습니다. casesdefault_next_steps..

    • default_next_steps (단계): 어떤 사례도 일치하지 않을 때 실행할 단계입니다. 아무것도 일치하지 않으면 브랜치를 종료하려면 비워 두세요..

  • 출력

예시 JSON 정의

마지막 업데이트

도움이 되었나요?