皆さんこんにちは!この記事では、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に自動承認の許可を与えていても、ワークスペース外のファイルについては確認してきます。
ブラウザで表示します。
エラー内容をBobに伝えます。
Bobからエラーの解析が送られてきました。
NetworkErrorが発生しているのは、ブラウザのCORS(Cross-Origin Resource Sharing)制限が原因です。クライアントサイドから直接IBM Cloud APIを呼び出すことができないため、バックエンドサーバーを作成する必要があります。
Pythonを使用した簡単なプロキシサーバーを作成します。
プロキシサーバーが作成され、プログラムが更新されました。
念のためWatson Machine Learningにデプロイしたモデルのテストの画面で同じ値を入力しテストしてみます。

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












