概要
Jinba Flowは以下を可能にする強力なテンプレート機能をサポートしています:- 前のステップの結果を参照する
- 設定済みのシークレットに安全にアクセスする
- 複雑なロジックにJinja2テンプレートを使用する
- 動的で再利用可能なワークフローを作成する
変数プレースホルダー
基本構文
変数は二重波括弧で囲みます:{{ 変数 }}
利用可能な変数
| 変数 | 説明 | 例 |
|---|---|---|
steps.<step_id>.result | 前のステップの結果 | {{steps.fetch_data.result}} |
steps.<step_id>.result.<property> | 結果の特定のプロパティ | {{steps.api_call.result.content}} |
secrets.<secret_name> | 設定済みのワークスペースシークレット | {{secrets.API_KEY}} |
item | forEachループ内の現在のアイテム | {{item}} |
item.<property> | 現在のアイテムのプロパティ | {{item.id}} |
ステップ結果へのアクセス
シークレットの使用
シークレットはワークスペースレベルで設定され、安全にアクセスされます:- シークレットは保存時に暗号化されます
- ワークフローに機密値をハードコーディングしないでください
- APIキー、トークン、認証情報にはシークレットを使用してください
Jinja2テンプレート
Jinba Flowは高度なロジックのための完全なJinja2テンプレートをサポートしています。テンプレートはステップ実行前に処理されます。制御構造
Forループ
条件文
インデックス付きループ
組み込み関数
Jinja2は便利な組み込み関数を提供します:フィルター
値に変換を適用します:空白の制御
{%-と-%}を使用して空白を制御します:
{%-はタグの前の空白を削除-%}はタグの後の空白を削除
一般的なパターン
リストの処理
条件付きデータ選択
複数ソースの結合
リストのフィルタリング
動的プロンプトの構築
ベストプラクティス
変数参照
- 明確さのために説明的なステップIDを使用する
- 必要なプロパティのみにアクセスする
- デフォルト値でnull/undefined値を処理する
テンプレート
- 適切なインデントでテンプレートを読みやすく保つ
- きれいな出力のために空白制御を使用する
- 複雑なロジックは複数のステップに分割する
シークレット
- シークレット値をログに記録したり公開したりしない
- チーム共有にはワークスペースレベルのシークレットを使用する
- シークレットを定期的にローテーションする
パフォーマンス
- 深くネストしたテンプレートを避ける
- ループ回数を制限する
- 可能な場合はデータを事前処理する
トラブルシューティング
よくある問題
変数が見つからない- ステップIDのスペルを確認
- 参照されるステップが現在のステップの前に実行されることを確認
- プロパティパスが正しいことを確認
- 波括弧
{{ }}のバランスを確認 - Jinja2タグの構文
{% %}を確認 - 文字列内のクォートが不足していないか確認
- デバッグステップを使用して中間値を検査
- 空白の処理を確認
- データ型を確認(文字列 vs オブジェクト)
関連ドキュメント
- ステップモジュールオプション - forEach、when、needs
- YAMLコーディングパネル - 完全なYAML構文
- デバッグ - ワークフローのデバッグ