from clearml import PipelineDecorator # @PipelineDecorator.component( # return_values=['number'], # cache=False, # repo='ssh://git@cmlgit.mxm.kr:20104/ACAI/model-yolo26-human.git', # 원격 실행 시 가져올 Git URL # repo_branch='main' # 사용할 브랜치 (지정하지 않으면 기본 브랜치) # # repo_commit='<특정_커밋_해시>' # 특정 커밋 버전으로 고정할 경우 추가 # ) # def getHumanDetectionModel(): # --------------------------------------------------------- # Task 1: 1~10 중 랜덤한 숫자를 출력하고 반환하는 컴포넌트 # --------------------------------------------------------- @PipelineDecorator.component(return_values=['number'], cache=False) def generate_number() -> int: import random random.seed(None) # 1에서 10 사이의 랜덤 정수 생성 num = random.randint(1, 10) print(f"Generated number: {num}") return num # --------------------------------------------------------- # Task 2: 파라미터로 받은 숫자가 5 이하인지 초과인지 판별하는 컴포넌트 # --------------------------------------------------------- @PipelineDecorator.component(return_values=['size_label'], cache=False) def evaluate_number(num: int) -> str: # 받은 파라미터가 5 이하인지 초과인지 체크 if num > 5: result = 'Max' else: result = 'Min' print(f"Input number {num} is '{result}'.") return result # --------------------------------------------------------- # 파이프라인 정의: 위 두 Task를 연결 # --------------------------------------------------------- @PipelineDecorator.pipeline( name='Number Evaluation Pipeline111', project='My Pipeline Project11', version='1.0', default_queue='default', # 1. 개별 Task(Step)들이 실행될 원격 큐 이름 pipeline_execution_queue='default' # 2. 파이프라인 전체를 관리할 Controller가 실행될 큐 (기본값 'services')) ) def my_pipeline(): # 1. 첫 번째 Task 실행 및 결과 받기 generated_num = generate_number() # 2. 첫 번째 Task의 결과를 두 번째 Task의 입력으로 전달 final_result = evaluate_number(generated_num) # 2. 첫 번째 Task의 결과를 두 번째 Task의 입력으로 전달 final_result = evaluate_number(generated_num) # 2. 첫 번째 Task의 결과를 두 번째 Task의 입력으로 전달 final_result = evaluate_number(generated_num) print(f"파이프라인 최종 결과: {final_result}") # --------------------------------------------------------- # 실행 부 # --------------------------------------------------------- if __name__ == '__main__': # 로컬에서 코드를 바로 실행하면서 ClearML 서버에 로깅되도록 설정 PipelineDecorator.run_locally() # PipelineDecorator.run_on_queue(queue_name='default') # 파이프라인 실행 my_pipeline()