仕組み
直接コーディング作成は、YAMLマニフェストを直接記述することでフローを完全に制御できます。この方法は以下を提供します:- フローのあらゆる側面の完全制御
- 複雑なワークフローの作成能力
- カスタムツールとAPIの統合
- 実行順序と条件の精密制御
- 条件付き実行やループなどの高度な機能
独自のマニフェストを作成する
マニフェストを作成するには、以下の手順に従ってください:- 各ステップに
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に依存しています。