REPL(Read-Eval-Print Loop)ノードを使用すると、AIワークフローの一部としてカスタムコードスニペットを実行できます。これは、標準ノードではカバーされないデータ変換、計算、またはカスタムロジックに強力です。
REPLノードは次の場合に使用します:
- ノード間でデータを変換またはフォーマットする
- 数学的計算を実行する
- 文字列を解析または操作する
- カスタムビジネスロジックを実装する
- API応答を構造化形式に処理する
基本設定
- タイトル: ノードのわかりやすい名前(例:「合計の計算」、「応答のフォーマット」)。
- 説明: 将来の参照用にコードの動作を記録します。
ランタイム環境
REPLノードは、安全なサンドボックス環境で実行されます。以下は、サポートされている関数、ライブラリ、および特定の制限事項です。
コア要件
- 必須のメイン関数: コードには
def main(): 関数を含める必要があります。
- 保護された反復:
for および while ループはサポートされていますが、無限実行を防ぐために監視されています。
組み込み関数
データ操作には標準のPython組み込み関数を使用できます:
- コレクションヘルパー:
list, dict, tuple, set, enumerate, reversed
- 数学と論理:
max, min, sum, abs, all, any
- ユーティリティ:
type
サポートされているライブラリ
以下の標準ライブラリはプリインストールされており、安全にインポートできます:
- データとフォーマット:
json, xml, base64, pandas
- ネットワーキング:
requests
- 時間と日付:
datetime, time
- ユーティリティ:
re (正規表現), hashlib, hmac, secrets, typing
- データベース:
sqlalchemy, sqlalchemy.orm, psycopg2
セキュリティ制限
プラットフォームの安定性を確保するために、以下は ブロック されています:
- ファイルシステム: ファイルI/O操作なし(例:
open())。
- システムアクセス: 許可リスト外のOS/システム関数または任意のインポートなし。
入力コード
Pythonスクリプトを記述するコードエディタです。コードは以下にアクセスできます:
- ワークフロー変数:
{{variable_name}} 構文を使用して、前のノードからの変数にアクセスします。
- 組み込み関数: データ処理用の標準Pythonライブラリ。
入力と出力
- 入力変数セレクター: 前のノードからの特定の変数をマップして、コードで使用します。
- 出力: ノードは、出力ハンドルを介してコード実行の結果を下流ノードに渡します。
例: JSON応答を解析し、特定のフィールドを抽出します:import json
data = json.loads({{api_response}})
result = data.get('items', [])[:5] # 最初の5項目を取得
コード実行にはリソース制限とタイムアウトがあります。無限ループやメモリ集約的な操作は避けてください。