실행 및 수명 주기 (Execution and Lifecycle)
노드의 수명 주기(Lifecycle), 상태 전이, 비동기 실행 및 콜백 메서드에 대한 상세 가이드입니다.
노드 수명 주기 단계
- 초기화 (
__init__): 노드 인스턴스가 생성되고 파라미터가 정의됩니다. - 사전 실행 검증 (
before_process): 입력 파라미터의 유효성을 검사합니다. - 실행 (
process또는aprocess): 노드의 핵심 연산이 수행됩니다. - 사후 처리 (
after_process): 출력 파라미터에 결과가 설정되고 상태가RESOLVED로 전이됩니다.
동기 실행 vs 비동기 실행
- 동기 실행 (
process): 단순한 데이터 변환, 로컬 연산 등 즉각적인 작업에 적합합니다. - 비동기 실행 (
async def aprocess): 원격 API 호출, 모델 인퍼런스, 네트워크 요청, 파일 다운로드 등 대기 시간이 발생하는 작업에 필수적입니다.
from griptape_nodes.exe_types.node_types import ControlNode
class AsyncFetchNode(ControlNode):
async def aprocess(self) -> None:
url = self.get_parameter_value("url")
# 비동기 HTTP 요청 처리
data = await self.fetch_data(url)
self.parameter_output_values["response"] = data
연결 및 상태 변경 콜백
on_connection_added(self, param_name, connection): 새 연결이 추가될 때 호출on_connection_removed(self, param_name, connection): 연결이 제거될 때 호출on_parameter_value_changed(self, param_name, old_val, new_val): 속성 값이 변경될 때 호출