1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

シンプルな Web API を FastAPI で作成

Last updated at Posted at 2021-10-06

はじめに

機械学習で作成したモデルを実用化するには、システムが必要になる。もっともシンプルなシステム実装としては、学習済みモデルが 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 が作成できる。

main.py
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 を作成していきたい。

1
4
0

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
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?