Files
pipline_sample/__main__v2.py
T
2026-07-23 17:52:03 +09:00

76 lines
2.9 KiB
Python

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()