Web API の切り替え

はじめに

本ドキュメントを通じて、 ABEJA Platform の GUI を利用して 新たに作成したモデルを Web API としてデプロイし、エンドポイントを切り替える方法紹介します。

モデルバージョンの追加

ここでは、その学習済みモデルで新たにモデルバージョンを追加して、そのバージョンを WebAPI としてデプロイした後に、現在使用されている Web API と切り替えます。

学習結果からモデルバージョンを作成する

左部メニューの “Training > Job Definition” をクリックします。 学習ジョブ定義画面の “Jobs” をクリックし、学習ジョブ一覧画面に移動します。 学習ジョブの一覧から先ほど行った学習ジョブの “Result” を選択します。

セレクトボックスから作成したモデルを選択して、 “Create Version” をクリックします。

作成するモデルの詳細を入力

入力フォームに以下の値を設定、”Create Model Version”ボタンをクリックして、登録します。

項目 備考
Version モデルのバージョン番号 例: 0.2.0
Runtime abeja-inc/all-cpu:18.10 -
Model Handler predict:handler デフォルトの main:handlerでは無いので注意
Job Definition 選択不要。入力されているものをそのまま使用する -
Training Job 選択不要。入力されているものをそのまま使用する -
Source Code 入力不要 -
Use latest source code instead of uploading source code チェックボックスを ON にする -

モデル新規追加画面

新しいモデルバージョンで作成した HTTP サービスに切り替える

“HTTP Services” タブの、”Create HTTP Service” ボタンをクリックします。

HTTP Service の作成

“Cloud” タブを選択し、入力フォームに次の値を設定し、”Create HTTP Service” をクリックし、HTTP サービスを作成します。

項目 備考
Model Version 先ほど作成したバージョン -
Instance Type cpu-1 -
Instance Numbers 1 -
Environments keyCHANNEL_IDvalue先ほど作成したチャンネルID -

HTTP Service 作成の入力項目

HTTP サービスに登録した環境変数は Service ID の右のアイコンをクリックすることで確認できます。

HTTP Service に登録した環境変数の確認

モデルに対してデータを入力し、出力結果を確認する

作成された HTTP サービスの、”Check” ボタンをクリックします。

HTTP Service の動作確認

“Upload File” のタブを選択すると、PC にある画像を HTTP サービスにアップロードして動作確認をすることが出来ます。

画像のアップロード

ダウンロードしてきた zip ファイルに含まれる任意の画像をドラッグ・アンド・ドロップし、 “Send” ボタンをクリックして、推論結果を確認します。

エイリアスの更新

新しく作成した WebAPI が正しく動作することが確認できたので、リクエストを流す先の WebAPI の切り替えを行います。

Primary のボタンをクリックして、 New Model version (Cloud service only) から新しく作成した Version を選択します。

Endpointの切り替え

実際にエイリアスの向き先が変更されたかどうかは curl コマンドを使用して確認できます。 HTTP サービスのエイリアスの右のアイコンをクリックすることで curl コマンドを確認できます。

curl コマンドでの確認

今回作成したモデルは画像を入力として受け付けるため、以下のような形式になります。

curl -X POST \
     -u user-xxxxx:xxxxxx \
     -H "Content-Type: image/jpeg" \
     --data-binary @sample.jpg \    
     https://{organization name}.api.abeja.io/deployments/{deployment id}