워크플로우 빌더
워크플로우는 고정된 결정적 파이프라인입니다 — 에이전트(동적 ReAct 루프)와 다릅니다. 배치 처리, ETL, 또는 예측 가능하고 반복 가능한 단계가 필요할 때 워크플로우를 사용하세요.
워크플로우 생성
섹션 제목: “워크플로우 생성”import { Schift } from "@schift-io/sdk";
const schift = new Schift({ apiKey: "sch_..." });const workflow = await schift.workflows.create({ name: "My RAG Pipeline" });블록 타입
섹션 제목: “블록 타입”워크플로우는 엣지로 연결된 블록으로 구성됩니다. 사용 가능한 블록 타입:
| 타입 | 설명 |
|---|---|
start | 시작 지점 |
end | 종료 지점 |
retriever | 벡터 스토어 검색 |
reranker | 검색 결과 재정렬 |
llm | LLM 호출 |
prompt_template | 프롬프트 포맷팅 |
document_loader | 문서 로드 |
chunker | 문서를 청크로 분할 |
embedder | 임베딩 생성 |
web_search | 웹 검색 |
code_executor | 커스텀 코드 실행 |
conditional | 조건 기반 분기 |
loop | 블록 세트 반복 |
api_call | 외부 API 호출 |
YAML 가져오기/내보내기
섹션 제목: “YAML 가져오기/내보내기”import { workflowFromYaml, workflowToYaml } from "@schift-io/sdk";
// YAML에서 가져오기const definition = workflowFromYaml(yamlString);
// YAML로 내보내기const yaml = workflowToYaml(definition);워크플로우 실행
섹션 제목: “워크플로우 실행”const result = await schift.workflows.run(workflow.id, { query: "What is vector search?",});
console.log(result);커스텀 노드
섹션 제목: “커스텀 노드”특수 처리를 위한 커스텀 블록 타입을 등록할 수 있습니다:
import { registerCustomNode, SDKBaseNode } from "@schift-io/sdk";
class MyNode extends SDKBaseNode { async execute(input: unknown) { // 커스텀 로직 return { processed: true, data: input }; }}
registerCustomNode("my_custom_node", MyNode);