Skip to main content
コードパネル。フロー全体をYAMLマニフェストとして直接編集できます

コードパネル。フロー全体をYAMLマニフェストとして直接編集できます

仕組み

直接コーディング作成は、YAMLマニフェストを直接記述することでフローを完全に制御できます。この方法は以下を提供します:
  • フローのあらゆる側面の完全制御
  • 複雑なワークフローの作成能力
  • カスタムツールとAPIの統合
  • 実行順序と条件の精密制御
  • 条件付き実行やループなどの高度な機能

独自のマニフェストを作成する

マニフェストを作成するには、以下の手順に従ってください:
  1. 各ステップに idname を定義します。
  2. INPUT_JSONPYTHON_SANDBOX など、適切な tool を選択します。
  3. input入力値を指定 します。
  4. needs を使って 依存関係を記述 し、実行順序を明示します。
この構成に従えば、データ処理のための明確でモジュール化されたワークフローを作成できます。

ステップの構成要素

Jinba Flow のマニフェストにおける各ステップは、動作と他のステップとの関係を定義するいくつかの主要な構成要素で構成されています。以下はその詳細です。

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 テンプレート構文

Jinba Flow は、マニフェスト内での動的な値生成や複雑なロジックに Jinja2 テンプレートをサポートしています。 利用可能な変数:
  • steps: 過去ステップの結果
  • item: forEach ループ内の現在の要素
  • secrets: 設定されたシークレット
  • その他、zip()range() などの組み込み関数も使用可能
{%--%} を使用することで、出力に含まれる空白を制御できます。

基本構文

  1. 変数の挿入
  1. 制御構文
  1. ステップ結果の参照

よくあるユースケース

  1. リストの処理
  1. 条件分岐のロジック
  1. 複数リストの組み合わせ

パターン例

  1. リストのフィルタリング
  1. デフォルト値の設定
  1. 文字列操作

マニフェストの例

以下は、数値データを複数のステップで処理する例です:

各ステップの説明

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 に依存しています。