メインコンテンツへスキップ
ionworks-api Python パッケージは、パイプラインの実行と管理のための client.pipeline を提供します。インストールと認証については Python API クライアント を参照してください。

パイプラインの送信

client.pipeline.create()iws.Pipeline インスタンスでも .to_config() が返す dict でも受け取れます。スキーマインスタンスは送信前にローカルで検証されるため、形状エラーは即座に表面化します。

パイプラインを JSON にシリアライズする

送信前のペイロード確認、キャッシュ、バージョン管理へのコミット、あるいは別プロセスへの受け渡しなど、パイプラインを JSON として扱いたい場合は .to_config() を使用してください。
.to_config() はサポートされている唯一のシリアライザです。パイプライン要素と目的関数に必要な判別子(トップレベルの要素は element_type、ネストされたスキーマはそれぞれの type)を出力し、スキーマのフィールド名マッピング(例: data_inputdata)を適用します。API ペイロードの構築に Pydantic の model_dump()使用しないでくださいmodel_dump() はこれらの判別子を落とし、フィールド名マッピングを適用しないため、API が拒否する可能性のある dict を生成します。

送信メタデータの上書き

create() は、スキーマに含まれる値を上書きするための project_idnamedescriptionoptions を kwargs として受け付けます。
project_id を省略した場合、クライアントは Ionworks(...) のデフォルト、または環境変数 IONWORKS_PROJECT_ID にフォールバックします。

完了待ち

パイプラインが失敗した際に例外を発生させず失敗レスポンスを返すには、raise_on_failure=False を指定します。

結果の取得

result.element_results のキーは iws.Pipeline(elements=...) に渡したキーと対応します。

要素のメタデータ

一部の要素(特に Validation)は element_results に含まれない追加メタデータを書き込みます。それらは次で取得できます。

データフィッティングのパラメータトレース

データフィッティング要素では、オプティマイザの反復ごとの進行状況が要素ジョブの メタデータに記録されます。要素のジョブ ID を渡して client.job.get_parameter_trace で取得できます。詳細なスキーマは パラメータトレースの取得を 参照してください。 要素の job_idelement_results ではなくパイプラインの要素一覧に 含まれているため、一覧を取得してデータフィッティング要素を名前で 取り出します。

パイプライン一覧

単一送信の取得

SimplePipeline

SimplePipeline は、高コストな要素が最大 1 つ(単一の DataFit または Validation)のワークフロー向けの、Pipeline の軽量な代替手段です。ファイア・アンド・フォーゲット方式で実行され、parameter_valuescost、そして(検証の場合は)summary_stats を含むフラットな結果を返します。送信とポーリングは client.simple_pipeline を通じて行います。

設定の構築

SimplePipelinePipeline からすべてを継承し、高コストな要素を複数含む設定を拒否するクライアントサイドの検証を追加します。
複数の DataFit または Validation 要素を渡すと、SimplePipeline は即座に ValueError を発生させます。サーバー側で拒否されるのを待つ必要はありません。

送信とポーリング

検証パイプライン

SimplePipeline は単一の Validation 要素もサポートします。結果には parameter_values に加えて summary_stats が含まれます。

エンドツーエンドの例

より多くのエンドツーエンド例(エントリのみ、計算のみ、データフィット、検証)は SDK リポジトリの packages/ionworks-api/examples/pipeline/ を参照してください。