マニフェスト
マニフェストの構造と書き方を学ぶ
マニフェストの記述方法
サイトにおけるマニフェストは、ツールやスクリプトの実行フローを定義し、依存関係やデータ変換を指定します。このドキュメントでは、システムで使用される形式に従って、マニフェストの構成と記述方法を説明します。
独自のマニフェストを作成する
マニフェストを作成するには、以下の手順に従ってください:
- 各ステップに
id
とname
を定義します。 INPUT_JSON
やPYTHON_SANDBOX
など、適切なtool
を選択します。input
に 入力値を指定 します。needs
を使って 依存関係を記述 し、実行順序を明示します。
この構成に従えば、データ処理のための明確でモジュール化されたワークフローを作成できます。
ステップの構成要素
Jinbaflow のマニフェストにおける各ステップは、動作と他のステップとの関係を定義するいくつかの主要な構成要素で構成されています。以下はその詳細です。
1. 基本的なステップ構造
各フィールドの説明:
id
: ステップを一意に識別するための必須フィールドtool
: 実行するツールの名前(必須)input
: ツールに必要な入力値のリスト(必須)config
: ツール固有の設定(例:APIトークン、LLMの温度設定など)(任意)needs
: 実行前に完了している必要のあるステップID(任意)when
: 実行条件(任意)forEach
: コレクション内の各要素に対してステップを繰り返すための指定(任意)
2. 設定 (config)
ツール固有の設定を指定します:
例:
3. 依存関係 (needs)
ステップの実行前に完了している必要のあるステップを指定します:
例:
4. 条件付き実行
条件に基づいてステップを実行するかどうかを制御します:
例:
5. ループ処理
コレクション内の各アイテムに対してステップを繰り返し実行します:
例:
6. 結果の参照
以前のステップの結果を参照します:
注意事項
- ステップID はワークフロー内で一意である必要があります。
- 依存関係 によって暗黙の実行順序が決定されます。
- 複雑なグラフ構造(例:ダイヤモンド型)も可能
- 循環依存は許可されません
- 条件文 は実行前に評価され、論理演算や比較、過去ステップの結果参照が可能です。
- 変数参照:
{{steps.step_id.result}}
で過去の結果にアクセス{{secrets.SECRET_NAME}}
でシークレットにアクセス{{item}}
はループ内の現在のアイテム
- YAML構文:
- 複数行の文字列には
|
を使います。
- 複数行の文字列には
Jinja2 テンプレート構文
Jinbaflow は、マニフェスト内での動的な値生成や複雑なロジックに Jinja2 テンプレートをサポートしています。
利用可能な変数:
steps
: 過去ステップの結果item
: forEach ループ内の現在の要素secrets
: 設定されたシークレット- その他、
zip()
、range()
などの組み込み関数も使用可能
{%-
や -%}
を使用することで、出力に含まれる空白を制御できます。
基本構文
- 変数の挿入
- 制御構文
- ステップ結果の参照
よくあるユースケース
- リストの処理
- 条件分岐のロジック
- 複数リストの組み合わせ
パターン例
- リストのフィルタリング
- デフォルト値の設定
- 文字列操作
マニフェストの例
以下は、数値データを複数のステップで処理する例です:
各ステップの説明
1. Input Data (input_data
)
- 数値配列
[1, 2, 3, 4, 5]
をINPUT_JSON
ツールで入力します。
2. Branch A1 (branch_a1
)
PYTHON_SANDBOX
を使用して、偶数の合計を計算します。input_data
に依存しています。
3. Branch A2 (branch_a2
)
branch_a1
の結果を2倍します。branch_a1
に依存しています。
4. Branch B1 (branch_b1
)
input_data
の奇数の合計を計算します。input_data
に依存しています。