コンテンツにスキップ

ワークフロービルダー

ワークフローは固定された決定論的なパイプラインです。エージェント(動的な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);