4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IBM BobとSPSS Modeler FlowでWebアプリを作成する

4
Last updated at Posted at 2026-02-12

皆さんこんにちは!この記事では、IBM BobとIBM CloudのSPSS Modeler Flowを使って車の生産国を予測するWebアプリを作成します。

IBM Bob とは

IBM Bob は、開発者のパートナーとして、単にコードを書くだけでなく、要件定義から実装、テスト、デプロイまで、ソフトウェア開発ライフサイクル全体を効率化し、最適化するように設計された、AIファーストで設計された統合開発環境です。

オープンソースのAIソフトウェア・エンジニア・エージェントと、VS Code(Visual Studio Code)を拡張して、COBOLやPRGなどの基幹システム向け言語に対応し、セキュリティー、コンプライアンス、高品質を実現することができます。

この記事ではこのIBM Bobを使ってIBM Cloudの Watson Machine Learning上にデプロイしたSPSS Modeler Flowのモデルを呼び出すアプリを作成します。

Bobから呼び出す予測モデル

車の生産国を予測するモデルは、以前Qiitaで公開したこちらを使用します。

早速始めてみましょう。

対話形式でBobに指示

対話形式で仕様をBobに指示していくことができます。あらかじめわかっていることをまとめて指示してあげるとさらに効率的です。

車の生産国を予測するWebアプリケーションを以下のフォルダに作成してください。
C:\Users\AsukaSaito\Documents\BobModelerFlowDemo\qiita\qiita2\

予測モデルはIBM Cloud上にデプロイされています。以下のエンドポイントを使ってください。
https://us-south.ml.cloud.ibm.com/ml/v4/deployments/5b7ae1dd-0631-4a39-895b-6be662863ca8/predictions?version=2021-05-01

APIキーは以下を使ってください。
Avotg9s**********************************

入力データのサンプルは以下のフォルダにあります。
C:\Users\AsukaSaito\Documents\BobModelerFlowDemo\qiita\cars.csv

予測結果のデータのフィールドは以下のjsonを参照してください。$R-生産国が予測された車の生産国で、$RC-生産国が予測の割合です。



[
	{
		"fields": [
			"燃費",
			"エンジン",
			"馬力",
			"車体重量",
			"加速性",
			"年式",
			"$R-生産国",
			"$RC-生産国"
		],
		"values": [
			[
				123,
				45,
				3567,
				12345,
				34,
				89,
				"日本",
				0.547619047619048
			]
		]
	}


Pythonのサンプルは以下です。(これはWatson Machine Learningにデプロイしたモデルのコード・スニペット欄にあります。)
import requests

# NOTE: you must manually set API_KEY below using information retrieved from your IBM Cloud account (https://dataplatform.cloud.ibm.com/docs/content/wsj/analyze-data/ml-authentication.html?context=wx)
API_KEY = "<your API key>"
token_response = requests.post('https://iam.cloud.ibm.com/identity/token', data={"apikey": API_KEY, "grant_type": 'urn:ibm:params:oauth:grant-type:apikey'})
mltoken = token_response.json()["access_token"]

header = {'Content-Type': 'application/json', 'Authorization': 'Bearer ' + mltoken}

# NOTE:  manually define and pass the array(s) of values to be scored in the next line
payload_scoring = {"input_data": [
	{
		"fields": [array_of_input_fields],
		"values": [array_of_values_to_be_scored, another_array_of_values_to_be_scored]
	}
]}

response_scoring = requests.post('https://private.us-south.ml.cloud.ibm.com/ml/v4/deployments/5b7ae1dd-0631-4a39-895b-6be662863ca8/predictions?version=2021-05-01', json=payload_scoring,
 headers={'Authorization': 'Bearer ' + mltoken})

print("Scoring response")
try:
    print(response_scoring.json())
except ValueError:
    print(response_scoring.text)
except Exception as e:
    print(f"An unexpected error occurred: {e}")


Bobに自動承認の許可を与えていても、ワークスペース外のファイルについては確認してきます。

image.png

image.png

作成されました。
image.png

指示があった方法でサーバーを起動します。
image.png

ブラウザで表示します。

image.png
予測するボタンをクリックしたところエラーとなりました。
image.png

エラー内容をBobに伝えます。

image.png

Bobからエラーの解析が送られてきました。

NetworkErrorが発生しているのは、ブラウザのCORS(Cross-Origin Resource Sharing)制限が原因です。クライアントサイドから直接IBM Cloud APIを呼び出すことができないため、バックエンドサーバーを作成する必要があります。

Pythonを使用した簡単なプロキシサーバーを作成します。

image.png

プロキシサーバーが作成され、プログラムが更新されました。

image.png

image.png

ブラウザでアクセスしてみます。
image.png

予測結果を確認します。動作しています。
image.png

念のためWatson Machine Learningにデプロイしたモデルのテストの画面で同じ値を入力しテストしてみます。
image.png

予測結果に相違はありません。
image.png

終わりに

いかがでしたでしょうか。コードを書くのは不慣れでもIBM Bobを使えば、短時間で他システム連携のアプリを作成できてしまいました。IBM Bobがリポジトリーや仕様書を理解することで、​開発者のパートナーとしてコードの生成や仕様書の生成、コード・レビューなどの最適化を支援します。2026年2月12日現在GA前の早期アクセスを募集しております。始めるにはこちらからお申込みください。

4
1
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?