케이스 분기
입력 값에 따라 실행을 여러 분기 중 하나로 라우팅합니다.
프로그램의 switch-case 문과 유사하게, 입력 값을 사례 값 집합과 비교하여 여러 브랜치 중 하나로 워크플로 실행을 라우팅함으로써, 여러 Continue If 블록을 연결하지 않고도 다중 분기, 값 기반 라우팅, 의사결정 트리를 가능하게 합니다.
이 블록의 작동 방식
이 블록은 단일 입력 값을 사례 매핑의 키와 비교하여 첫 번째로 일치하는 사례에 연결된 단계로 실행을 보냅니다. 이 블록은:
하나의
값입력(일반적으로 워크플로 입력 또는 단계 출력을 참조하는 선택기, 예: 분류 결과)을 받아 문자열로 변환합니다문자열을 다음에서 찾습니다
cases매핑에서 찾습니다. 여기서 각 키는 사례 값이고 각 값은 해당 사례가 일치할 때 실행할 단계입니다(예:{"red": "$steps.on_red", "blue": "$steps.on_blue"})만약
case_insensitive가 활성화되면 비교는 대소문자를 무시합니다사례가 일치하면 실행은 해당 사례의 단계로 계속되며 다른 모든 브랜치는 종료됩니다
어떤 사례도 일치하지 않으면 실행은
default_next_steps에 나열된 단계로 계속됩니다. 사례가 일치하지 않고
default_next_steps가 비어 있으면 브랜치는 종료됩니다
입력 값은 일치하기 전에 문자열로 변환되므로, 문자열이 아닌 값은 해당 문자열 표현과 일치합니다: True 키와 일치합니다 "True", 1.0 과 일치합니다 "1.0" (아닌 "1"), 그리고 누락/None 값은 "None". 각 대상 단계는 전체에서 최대 한 번만 나타날 수 있습니다. cases 및 default_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"}. 각 대상 단계는 전체에서 최대 한 번만 나타날 수 있습니다.cases및default_next_steps..default_next_steps(단계): 어떤 사례도 일치하지 않을 때 실행할 단계입니다. 아무것도 일치하지 않으면 브랜치를 종료하려면 비워 두세요..
출력
마지막 업데이트
도움이 되었나요?