
概要
REPLノードは次の場合に使用します:- ノード間でデータを変換またはフォーマットする
- 数学的計算を実行する
- 文字列を解析または操作する
- カスタムビジネスロジックを実装する
- API応答を構造化形式に処理する
設定

基本設定
- タイトル: ノードのわかりやすい名前(例:「合計の計算」、「応答のフォーマット」)。
- 説明: 将来の参照用にコードの動作を記録します。
ランタイム環境
REPLノードは、安全なサンドボックス環境で実行されます。以下は、サポートされている関数、ライブラリ、および特定の制限事項です。コア要件
- 必須のメイン関数: コードには
def main():関数を含める必要があります。 - 保護された反復:
forおよびwhileループはサポートされていますが、無限実行を防ぐために監視されています。
入力コード
Pythonスクリプトを記述するコードエディタです。コードからは以下を利用できます:- ワークフロー変数:
{{variable_name}}構文を使用して、前のノードからの変数にアクセスします。 - 組み込み関数: データ処理用の標準Pythonライブラリ。
入力と出力
- 入力変数セレクター: 前のノードからの特定の変数をマップして、コードで使用します。
- 出力: ノードは、出力ハンドルを介してコード実行の結果を下流ノードに渡します。
組み込み関数
データ操作には標準の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
GCS ヘルパー関数
組み込みの Google Cloud Storage(GCS)ヘルパー関数を使用すると、現在のGIDR用ストレージバケット内のファイルを読み取り、書き込み、一覧表示、削除できます。これらの関数は実行時にサンドボックスへ注入されるため、インポートは不要です。 各GIDRには専用で分離された Google Cloud Storage バケットがあります。パスはそのGIDRのルート(gidr/files/{gidr_id}/)からの相対パスです。たとえば reports/2026/july.csv のように、サブフォルダへファイルを書き込めます。
あるGIDRが書き込んだファイルには、他のGIDRからアクセスできません。../other-gidr/file.txt のようなパストラバーサルはブロックされます。
gidr_write_gcs
コンテンツをGCSのファイルへアップロードします。ファイルが存在しない場合は作成し、存在する場合は上書きします。
戻り値:
{"status": 200, "path": "reports/july.csv"}
例外: パスが空または無効な場合は ValueError。GCSへのアップロードに失敗した場合は RuntimeError。
gidr_read_gcs
GCSからファイルの内容をダウンロードします。
戻り値: ファイルの内容を文字列として返します。
例外: パスが空または無効な場合は
ValueError。ファイルが存在しない場合は RuntimeError(404)。
gidr_delete_gcs
GCSからファイルを削除します。
戻り値:
{"status": 204, "path": "reports/july.csv"}
例外: パスが空または無効な場合は ValueError。GCSからの削除に失敗した場合は RuntimeError。
gidr_list_gcs
指定したパス配下のすべてのファイルを一覧表示します。デフォルトではGIDRルートフォルダ内のすべてのファイルを一覧表示します。
戻り値: GIDRルートからの相対ファイルパスのリスト。
データベース(DB)ユーティリティ関数
これらの組み込み関数を使用すると、GIDRのデータベースインスタンスにアクセスしてテーブルを作成できます。接続情報は実行時に注入されるため、データベース設定は不要です。gidr_get_db
GIDRのデータベースインスタンスに接続されたSQLAlchemy Session を生成します。ジェネレータが使い尽くされると、セッションは自動的に閉じられます。
接続をプールへ戻すため、必ず
finally ブロックで db_gen.close() を呼び出してください。session.close() を直接呼び出さず、ジェネレータにクリーンアップを任せてください。セッションは autocommit=False を使用するため、書き込み後は明示的に session.commit() を呼び出します。SQLAlchemyの text() はグローバルスコープにあらかじめインポートされているため、インポートは不要です。create_table
GIDRのデータベースインスタンスにテーブルを作成し、SQL Agentへ登録します。これにより、後続のワークフローステップでテーブルをクエリできます。
すべてのテーブルには、row_id BIGINT のID列が自動生成されます。定義する必要はありません。
サポートされるSQL型
例: 基本的なテーブル
内部で行われる処理
内部で行われる処理
create_table は、gidr_get_db が返すセッションを使用してテーブルを作成し、DDLをコミットしてスキーマをJSONとしてシリアライズし、ai_services.public.sql_agent_user_tables_map にレコードを挿入します。これにより、SQL Agentは後続のワークフローステップで新しいテーブルを検出してクエリできます。制限事項
制限事項
- 既に存在する名前でテーブルを作成するとエラーになります。一意の名前を使用するか、先に既存のテーブルを削除してください。
- 列の型には、
stringではなくTEXTのような有効なSQL型文字列を指定する必要があります。 primary_keyを指定する場合、その列はcolumnsにも含まれている必要があります。- 新しいテーブルは0行の状態で作成されます。
セキュリティ制限
プラットフォームの安定性を確保するために、以下は ブロック されています:- ファイルシステム: ファイルI/O操作なし(例:
open())。 - システムアクセス: 許可リスト外のOS/システム関数または任意のインポートなし。