概要
Jinba Toolbox ツールを使うと、フロー内から Jinba Toolbox に Python ツールを登録できます。初回実行時に ToolSet を作成し、実行のたびにツールを作成または更新するため、生成したツールをソースと同期した状態に保てます。主な機能
JINBA_TOOLBOX_REGISTER_TOOLorg_id、tool_set_slug、tool_slugで特定される Python ツールを登録または更新- ToolSet が存在しない場合は
tool_set_nameとtool_set_descriptionを使って新規作成(非公開、Python サンドボックス) tool_name、tool_description、codeは実行のたびに送信され、tool_nameを変更するとツール名が変更される- バージョンの Publish は行わないため、登録後に Toolbox の Web コンソールから Publish する
認証
config のapi_key に Jinba Toolbox の API キー(シークレットタイプ JINBA_TOOLBOX_API_KEY)を設定します。任意の base_url config を指定すると、Jinba Flow の環境に設定された Toolbox API の URL を上書きできます。
注意: API キーは機密情報として扱い、公開リポジトリにコミットしないでください。
使用例
例:ツールを登録する
注意事項
- 入力:
org_id(Toolbox の組織 ID またはスラッグ)、tool_set_slugとtool_slug(小文字の英字・数字・ハイフン、64 文字以内)、tool_set_nameとtool_name(256 文字以内)、tool_set_descriptionとtool_description(任意、4,096 文字以内)、code(65,536 文字以内)。 codeには pydantic のBaseModelを継承したInputクラスとOutputクラス、およびrun(input: Input) -> Output関数を定義する必要があります。Toolbox はこれらからツールの入出力スキーマを抽出し、いずれかが欠けているコードは拒否されます。tool_set_nameとtool_set_descriptionは ToolSet の作成時にのみ使われ、既存の ToolSet の名前は変更されません。tool_set_descriptionが空の場合はtool_set_nameが使われます。tool_descriptionが空の場合、既存ツールの説明は変更されません。resultにはtool_set_slug、tool_slug、tool_set_created、tool_createdが含まれます(更新ではなく新規作成だった場合にtrue)。- 同じ
tool_set_slug/tool_slugへの並行登録は調停されないため、フロー側で直列化してください。