はじめに
機械学習で作成したモデルを実用化するには、システムが必要になる。もっともシンプルなシステム実装としては、学習済みモデルが API リクエストに対して推論結果をレスポンスで返す簡単な Web API が考えられるが、機械学習モデルは大半が Python で構築されているため、API も Python ベースで作成することが望ましい。
本記事では、後々機械学習モデルの推論結果を返す Web API を作成することを見据え、まず簡単な Web API を Python フレームワークである FastAPI を用いて作成してみる。FastAPI 公式ドキュメントを参考にした。
FastAPI のインストール
FastAPI 公式ドキュメントを参考にインストールする。
$ pip install fastapi uvicorn
Web API の作成
main.py を作成して、以下コードで最低限の Web API が作成できる。
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
FastAPI インスタンス app
を作成し、@app.get("/")
のようにデコレータを用いて、HTTP メソッドとパスを指定している。さらにリクエストを受け取るたびに呼び出される関数を定義している。この関数の返り値がレスポンスとして返される。
以下コマンドで実行して、http://127.0.0.1:8000/items/5?q=somequery にアクセスするとレスポンスが返ってくることが確認できる。--reload
は開発用オプションで、コードの変更時にサーバーを再起動させる。
$ uvicorn main:app --reload
おわりに
FastAPI を用いて簡単な Web API を作成した。機械学習モデルの推論結果を返すような Web API を作成していきたい。