콘텐츠로 이동

워크플로우 빌더

워크플로우는 고정된 결정적 파이프라인입니다 — 에이전트(동적 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검색 결과 재정렬
llmLLM 호출
prompt_template프롬프트 포맷팅
document_loader문서 로드
chunker문서를 청크로 분할
embedder임베딩 생성
web_search웹 검색
code_executor커스텀 코드 실행
conditional조건 기반 분기
loop블록 세트 반복
api_call외부 API 호출
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);