Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Python 함수 시작

Python 함수 저장소에서는 functions.api의 데코레이터와 타입 선언으로 플랫폼 함수를 등록합니다. Workshop이나 온톨로지 앱에 사용하는 함수들을 같은 저장소에 묶는 구성이 비용을 줄이는 방식으로 권장됩니다.

저장소와 기본 함수

프로젝트의 + New > Repository에서 Python functions 템플릿을 선택합니다.

템플릿의 python-functions/python/python-functions/my_function.py를 엽니다. 기본 예제는 다음과 같습니다.

from functions.api import function, String


@function
def my_function() -> String:
    return "Hello World!"

등록할 함수에는 @function이 있어야 합니다. 여러 Python 파일에 여러 함수를 둘 수 있지만 이 데코레이터가 없는 함수는 플랫폼 함수로 등록하지 않습니다.

모든 인수와 반환 타입을 선언해야 하며 API 타입이나 대응 Python 타입을 사용할 수 있습니다. 위의 String 대신 str도 가능합니다. API 타입으로 선언해도 런타임에는 대응 Python 값이 전달되므로 String 인수는 str입니다.

추가 Python 패키지는 Libraries 패널에서 구성합니다.

시간 계산 함수 추가

같은 파일에 아래 함수를 추가할 수 있습니다. elapsed_millis는 초가 아니라 밀리초입니다.

from datetime import datetime, timedelta


@function
def add_milliseconds_to_datetime(start_time: datetime, elapsed_millis: int) -> str:
    return (start_time + timedelta(milliseconds=elapsed_millis)).isoformat()

이 파일은 앞의 function import를 함께 사용합니다. 시간 값을 실제로 더한 뒤 ISO 문자열을 반환합니다. int 입력은 기본으로 함수 Integer로 등록되므로 그 범위를 따릅니다.

미리보기

Functions 도우미의 Live Preview에서 my_function 또는 새로 추가한 add_milliseconds_to_datetime을 선택하고 값을 넣어 Run으로 실행할 수 있습니다.

커밋과 게시

Source control에서 변경을 검토하고 메시지와 함께 Commit합니다. master의 Branches에서 Tags and releases > New tag를 열고 버전을 지정합니다.

Tag and release가 끝나면 Code 탭의 Functions 도우미에서 게시한 함수를 확인합니다.

함수와 입력을 선택하여 게시한 버전을 실행할 수 있습니다.

플랫폼 사용에서 함수 결과를 앱에 연결하고, Python만 지원하는 Pipeline Builder 호출과 일반 온톨로지 앱 호출의 차이를 구분해야 합니다.