こちらの記事のようにscikit-learnで作ったモデルを、pickleでファイルに保存する。
pickleで保存したファイルは、下記のようにするとモデルとして復元され、予測処理を行うことができる。
このモデルをFlaskを使ってAPI化する。
まず、flaskをインストールする。
FlaskはPythonのWebフレームワークだが、マイクロフレームワークを標榜しているため、ファイルを1つだけ作れば充分に動作する。
下記のようなファイルをapp.py
という名前で作成する。
あとは、下記のコマンドでFlaskの開発用サーバを立ち上げる。
reload
引数を付けておけば、ソースコードを書き換えて保存すれば自動的に反映される。
開発用サーバが起動すると、
と表示される。デフォルトで5000番ポートを使用する。
Ctrl+C
で開発用サーバが終了する。
開発用サーバの起動中に、例えば下記のようなCurlコマンドを実行し、APIコールしてみる。
VS Codeを使っているなら、REST Clientという拡張機能をインストールして、拡張子がhttp
のファイルを作成し、下記のような内容を入力して実行すると良い。
POST http://localhost:5000/predict
Content-Type: application/json
{
"value": 30
}
下記のような実行結果が表示される。(VS Code+REST Clientの場合)
HTTP/1.0 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 30
Server: Werkzeug/1.0.1 Python/3.8.5
Date: Thu, 07 Oct 2021 07:08:01 GMT
{
"result": 18.002818181818185
}