Link SDK에서 파이프라인을 생성하는 방법에는 두 가지가 있습니다.

  • 파이프라인 생성 클래스인 LinkPipeline을 통한 파이프라인 생성 (here)
  • create_link_pipeline 메소드를 통한 파이프라인 생성 (here)

이 문서에서는 파이프라인 생성 클래스를 통하여 파이프라인을 생성하는 방법에 대하여 설명합니다.

파이프라인 생성 클래스를 통한 파이프라인 생성

빈 파이프라인 객체를 생성한 다음 차후 컴포넌트를 생성하여 해당 파이프라인에 추가할 수 있으며, 그래프 객체를 생성하여 LinkPipeline 클래스의 요소로 넣을 수도 있습니다.

LinkPipeline(
    identifier: Optional[str] = None,
    graph: Optional[MRXLinkDagModel] = None,
    parameters: Optional[List[MRXLinkPipelineParameterModel]] = None,
)
  • Parameters
    • identifier(str): Pipeline의 ID (입력하지 않으면 자동으로 uuid 부여됨)
    • graph(Object): create_link_graph 메소드를 통하여 생성된 graph 객체 (create_link_graph)
    • parameters(Object): create_link_parameter 메소드를 통하여 생성된 pipeline parameter 객체 리스트 (create_link_parameter)
  • Returns
    • LinkPipeline
  • Troubleshooting
    • RuntimeError: User configuration is required.
      For user configuration, try 'mrx-link login' in the command line interface.
      • 유저 정보가 필요한 경우에 (로그인이 필요한 경우에) 발생합니다.
    • ConnectionError: Check your internet connection and try again.
      • 인터넷 요청 에러 또는 타임아웃 상황에서 발생합니다.
    • ValueError: Invalid email or product key. Please check your email and product key again.
      • 이메일 또는 product key 값이 잘못된 경우 발생합니다.
    • ConnectionError: An unknown error occurred. If the problem continues, visit https://makinarocks-link.readme.io/discuss for discussion, or https://link.makinarocks.ai/technical_support/ for technical support.
      • 인터넷 연결 중 원인을 알 수 없는 문제 상황에서 발생합니다.
    • ValueError: Pipeline parameter names should not be duplicated: ['name']
      • 파이프라인 파라미터 이름이 중복될 때 발생합니다.

Example - 빈 파이프라인 객체를 생성하여 컴포넌트를 추가하는 방식

Sample Code

from mrx_link.sdk import LinkPipeline
from mrx_link.sdk.utils import * 

# 코드 셀
code1 = """
x = 1
"""
code2 = """
y = 1
z = 1
"""
code3 = """
print(f"{x + y + z = }")
"""

if __name__ == "__main__":
    # 파이프라인 객체 생성
    pipeline = LinkPipeline()

    # 컴포넌트 생성 및 파이프라인에 컴포넌트 추가
    component1 = create_link_component(identifier="111-1", name="test1", code=code1)
    component2 = create_link_component(identifier="111-2", name="test2", code=code2)
    component3 = create_link_component(identifier="222", name="test3", code=code3)
    pipeline.add_component(component=component1)
    pipeline.add_component(component=component2)
    pipeline.add_component(component=component3)
    pipeline.add_edge(parent_id="111-1", child_id="222")
    pipeline.add_edge(parent_id="111-2", child_id="222")

    # 파이프라인 구조 출력
    pipeline.print()

Output

##### PIPELINE #####
ID     Name    Status    Parent IDs
-----  ------  --------  ------------------
111-1  test1   Ready     []
111-2  test2   Ready     []
222    test3   Ready     ['111-1', '111-2']

##### PARAMETERS #####
Name    Type    Value
------  ------  -------

Example - 그래프 및 파라미터 클래스를 통하여 파이프라인을 생성하는 방식

from mrx_link.sdk import LinkPipeline
from mrx_link.sdk.utils import (
    create_link_component,
    create_link_edge,
    create_link_graph,
    create_link_parameter,
    create_link_pipeline
)

# 코드 셀
code1 = """
x = 1
"""
code2 = """
print(f"{x=}, {y=}")
"""

# 컴포넌트 생성
component1 = create_link_component(identifier="111-1", name="test", code=code1)
component2 = create_link_component(identifier="111-2", name="test2", code=code2)

# edge 생성
edge1 = create_link_edge(parent_id="111-1", child_id="111-2")

# graph 생성
graph = create_link_graph(
  components=[component1, component2],
  edges=[edge1]
)

# 파라미터 생성
parameter1 = create_link_parameter(name="x", value=123)
parameter2 = create_link_parameter(name="y", value="baregasdv")
parameters = [parameter1, parameter2]

# 그래프 및 파이프라인 파라미터 객체를 넣어서 파이프라인 생성
pipeline = LinkPipeline(graph=graph, parameters=parameters)

# 파이프라인 구조 출력
pipeline.print()

Output

##### PIPELINE #####
ID     Name    Status    Parent IDs
-----  ------  --------  ------------
111-1  test    Ready     []
111-2  test2   Ready     ['111-1']

##### PARAMETERS #####
Name    Type    Value
------  ------  -----------
x       int     123
y       str     "baregasdv"