ワークフロービルダー
ワークフローは固定された決定論的なパイプラインです。エージェント(動的なReActループ)とは異なります。バッチ処理、ETL、または予測可能で再現可能なステップが必要な場合にワークフローを使用します。
ワークフローの作成
Section titled “ワークフローの作成”import { Schift } from "@schift-io/sdk";
const schift = new Schift({ apiKey: "sch_..." });const workflow = await schift.workflows.create({ name: "My RAG Pipeline" });ブロックタイプ
Section titled “ブロックタイプ”ワークフローはエッジで接続されたブロックから構成されています。利用可能なブロックタイプは以下の通りです:
| タイプ | 説明 |
|---|---|
start | エントリーポイント |
end | エグジットポイント |
retriever | ベクトルストアを検索 |
reranker | 検索結果を再ランク付け |
llm | LLMを呼び出す |
prompt_template | プロンプトをフォーマット |
document_loader | ドキュメントをロード |
chunker | ドキュメントをチャンクに分割 |
embedder | 埋め込みを生成 |
web_search | ウェブを検索 |
code_executor | カスタムコードを実行 |
conditional | 条件に基づいて分岐 |
loop | 一連のブロックを繰り返す |
api_call | 外部APIを呼び出す |
YAMLのインポート/エクスポート
Section titled “YAMLのインポート/エクスポート”import { workflowFromYaml, workflowToYaml } from "@schift-io/sdk";
// YAMLからインポートconst definition = workflowFromYaml(yamlString);
// YAMLにエクスポートconst yaml = workflowToYaml(definition);ワークフローの実行
Section titled “ワークフローの実行”const result = await schift.workflows.run(workflow.id, { query: "What is vector search?",});
console.log(result);カスタムノード
Section titled “カスタムノード”特別な処理のためにカスタムブロックタイプを登録します:
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);