皆さんこんにちは!この記事では、IBM Bobを使ってIBM Cloud上のSPSS Modeler Flowのフローを自動生成するPythonのスクリプトを生成したいと思います。
IBM Bobとは
IBM Bob は、開発者のパートナーとして、単にコードを書くだけでなく、要件定義から実装、テスト、デプロイまで、ソフトウェア開発ライフサイクル全体を効率化し、最適化するように設計された、AIファーストで設計された統合開発環境です。
オープンソースのAIソフトウェア・エンジニア・エージェントと、VS Code(Visual Studio Code)を拡張して、COBOLやPRGなどの基幹システム向け言語に対応し、セキュリティー、コンプライアンス、高品質を実現することができます。
この記事では まずは手始めにテーブルノード、データ検査ノードを追加するフローを生成します。
はじめに
Modeler FlowでもClientと同様にPythonのコードを実行できます。Modeler Flowでは、パレットの上部にスクリプトというアイコンがあります。

こちらをクリックすると以下の画面になります。コードを入力して「スクリプトを実行」ボタンをクリックすることでPythonが実行できます。

IBM Bob への指示
以下はIBM Bobへの指示の例です。以下に示す通り何度かエラーが起こり、そのたびにBobに伝えて解析し、実行を繰り返しました。
IBM Cloud のSPSS Modeler Flow (Clientではない)にFlow scriptingを実行して、データを参照するテーブルノードとデータ検査ノードを追加したい。以下のフォルダで作業してください。C:\Users\AsukaSaito\Documents\20260219_Flow+Bob\dataview
この画面から実行する前提でお願いします。
Bob「了解しました。IBM Watson SPSS Modeler Flowのスクリプトパネルから直接実行できるPythonスクリプトを作成します。画面のスクリプトエディタに貼り付けて実行できる形式にします。」
読み込むデータはプロジェクト内のhttps://dataplatform.cloud.ibm.com/projects/588eaee3-3e19-41c3-864b-565f48f01cf5/data-assets/d703bcb2-e1c8-49a5-9fb9-ef8d21d0adb2/preview?context=wx&walkme_guided_tutorial=false これにしてください。
Bob「了解しました。IBM Cloud内のデータアセットを使用するように、スクリプトを更新します。データアセットIDを使用する形式に変更します。」
以下、ノード名が文字化けしていたため文字化けしないようにと指示しました。
テーブルノードが文字化けしないようにお願いします
Bob「了解しました。テーブルノードに文字エンコーディングの設定を追加します。」
AEQMJ0100E: スクリプト エラー (プロパティー 'data_asset_id' が定義されていません)
Bob「了解しました。data_asset_idプロパティが使えないようです。IBM Cloud SPSS Modeler Flowでは、データアセットを参照する別の方法を使用する必要があります。データアセットノードの正しい作成方法に修正します。」
AEQMJ0100E: スクリプト エラー (プロパティー 'maximum_rows' が定義されていません)
Bob「了解しました。テーブルノードのプロパティ名が異なるようです。IBM Cloud SPSS Modeler Flowで使用できる正しいプロパティ名を使用するように修正します。」
以下、追加はできたけれど、「ユーザー入力」ノードであったため、修正を依頼。

ユーザー入力ノードではなくデータ資産ノードを追加できますか?
Bob「了解しました。データ資産(Data Asset)ノードを使用するように変更します。」
以下のようにノードが追加され、データ資産も正しく追加されていました。

ノード名が文字化けしています。日本語で正しく表示されるようにしてください。
Bob「了解しました。日本語のノード名が正しく表示されるように、UTF-8エンコーディングを明示的に指定します。」
メッセージが英語で表示されました。ノードも英語です。これらを日本語にできますか?
Bob「スクリーンショットを見ると、ノードは正常に作成されていますが、英語で表示されています。IBM Watson SPSS Modeler Flowでは、スクリプトパネルから実行する場合、日本語の文字列をそのまま使用できるようです。日本語のノード名とメッセージに変更します。」
Bob「スクリーンショットを見ると、ノード名が文字化けしています(「ãã¼ãã«」「ãã¼ã¿è³ç£」など)。これはエンコーディングの問題です。IBM Watson SPSS Modeler Flowのスクリプトパネルでは、ノード名を英数字にする必要があるようです。日本語はコメントとprint文のみで使用し、ノード名は英語にします。」
このように、何回かやり取りを経て、ノードを自動生成することができました。日本語で生成できるかは引き続き確認していきます。→ その後日本語対応のコードの書き方がわかりました。こちらを参照ください。
以前作成したアセットを参照する
次に試したいのはBobが作成したアセットを参照資料としたうえでもっと効率的に生成できるかです。
IBM Cloud のSPSS Modeler Flow にFlow scriptingを実行して、データを参照するテーブルノードとデータ検査ノードを追加したい。
以下のフォルダで作業してください。
C:\Users\AsukaSaito\Documents\20260219_Flow+Bob\dataview2
使用するデータ資産は以下です。
https://dataplatform.cloud.ibm.com/projects/588eaee3-3e19-41c3-864b-565f48f01cf5/data-assets/d703bcb2-e1c8-49a5-9fb9-ef8d21d0adb2/preview?context=wx&walkme_guided_tutorial=false
こちらの成果物も参照してください。
C:\Users\AsukaSaito\Documents\20260219_Flow+Bob\dataview
以下のスクリーンショットのように画面から実行したい。
C:\Users\AsukaSaito\Documents\20260219_Flow+Bob\dataview2\スクリーンショット 2026-02-14 121110.png
実行後、以下のエラーが表示されました。
AEQMJ0100E: スクリプト エラー (プロパティー 'maximum_rows' が定義されていません)
Bob「エラーが発生しましたね。maximum_rows プロパティが定義されていないというエラーです。テーブルノードのプロパティ名を修正する必要があります。既存の成果物を確認して、正しいプロパティ名を調べます。」
Bobが再度生成したコードを実行したところ、以下のようにノードが自動生成されました。

一度エラーは起こりましたが、過去の資産を読み取り、短いステップでコードが生成できました。
次の記事ではより複雑な処理、モデルの作成を指示してみたいと思います。



