メインコンテンツにスキップ

手続きにおけるコードブロックツール

Fin Proceduresでコードブロックを使い、決定論的で再現可能なロジックを実行する方法。使用時期、設定方法、利用可能なPythonライブラリを含む。

コードブロックを使うと、Fin Procedure内で直接Pythonロジックを実行でき、LLMが予測不可能な場合でも一貫した正確な結果が得られます。

コードブロックを使うタイミング

決定論的で再現可能なロジックにはコードブロックを使いましょう。特にFinが一貫しない場合に有効です:

  • 日付と時間の計算 — 営業日、タイムゾーン変換、締め切りチェック

  • 数学的操作 — 返金額、パーセンテージ、通貨換算

  • 文字列操作 — IDのフォーマット、部分文字列の抽出、正規表現マッチング

  • データ変換 — コネクタの応答の再構成、リストのフィルタリングやマッピング

  • 複雑な条件ロジック — 複数条件による適格性チェック

ヒント: 出力が正確かつ再現可能である必要がある場合にコードブロックを使い、解釈が有利な場合は使わないでください。

コードブロックを使わない場合

Finが自然にうまく処理できるタスクにはコードブロックを避けましょう。例えば:

  • ユーザーの意図の解釈

  • 会話応答の生成


コードブロックの使い方

1. コードブロックを作成する

  1. @または/を入力してツールセレクターを開く

  2. +コードブロックを作成を選択

2. コードを書いてテストする

  1. コードブロックエディターが開きます

  2. コードをテストをクリックしてロジックを実行、テストパネルが開きます

  3. 参照した属性の入力フィールドが表示されます

  4. テストを実行し、JSONまたはリスト形式で結果を確認します

3. 属性を理解する

属性は返された応答から作成されます。例えば、次のコード:

return {
  "result": {
    "nested_result": "This is nested"
  },
  "date": "05-04-2025"
}

次の属性を作成します:

  • ルート属性(応答全体)

  • ネストされた属性:result、result.nested_result、およびdate

注意: ルート属性は常に作成され、返された応答全体を含みます。JSONである必要はありません。

4. 手続きでコードブロックを使う

  1. 手続きエディターに戻る

  2. @または/を入力してツールセレクターを開く

  3. コードを実行を選択 — 利用可能なコードブロックが一覧表示されます

  4. コードブロックを選択する

選択後、手続き全体で属性を使い、通常通り続行できます。


利用可能なライブラリ

これらのPython標準ライブラリモジュールはホワイトリストに登録され、事前にインポートされています。インポート文なしで直接使えますが、明確さのためにインポートを追加することを推奨します。

モジュール

用途

math

数学関数

math.floor(3.7), math.ceil(2.1)

decimal

正確な10進数演算

Decimal("19.99") * Decimal("0.15")

re

正規表現

re.match(r"\d{4}", order_id)

datetime

日付、時間、期間

datetime.date.today(), timedelta(days=5)

json

JSONのエンコード/デコード

json.loads(raw_string)

random

乱数生成

random.randint(1, 100)

zoneinfo

タイムゾーン処理

ZoneInfo("America/New_York")

time

時間関連の関数

time.time()

注意: トップレベルのインポートのみ許可されています。サブモジュールのインポートは避けてください。例:from json import loads はサポートされていません。

こちらの回答で解決しましたか?