PyCon JP 2024

ロケール設定が保存されました。pretalxでは英語のサポートが充実していると思っていますが、問題やエラーが発生した場合は、ぜひご連絡ください。

FastAPIのasync defとdefの使い分け
2024/09/27 , 20F Track1

FastAPIはPythonでREST APIを実装するときに使用するライブラリです。リクエスト・レスポンスのバリデーションや認証など様々な機能を備えており、便利なライブラリなので広く使われています。

そのFastAPIですが、パスオペレーションを定義するときに、async をつけることができます。昨今ChatGPTライクなストリームのようにChat表示できるアプリで使用されることもありますが、このasyncにはどのような効果があるのか、どのように使うのかは実は曖昧な人が多いのではないでしょうか。

いくつかのコードをサンプルにasyncを使う場合、使わない場合に分けて負荷試験などを見ながら違いについて発表します。


このセッションでは、async defはどのようなものかを簡単に説明し、使ったらよい場合と、使ってはいけない場合をそれぞれ説明します。
それぞれ、使った場合と使ってない場合にどのようなことになるか負荷試験結果などを見ながらasync defのベストプラクティスを学んでいきます

  1. Pythonにおける並行処理・並列処理・非同期処理
  2. マルチスレッドと非同期処理
    2.1. GILとは何か
    2.2 async/awaitの実装
  3. FastAPIにおけるasync defとdefの違い
    3.1 async def+同期処理を書いてはいけない
  4. async def+同期処理でどうなるのか実験してみる

この題材を選んだ理由やきっかけ

FastAPIは広く使用されていますが、世の中にある様々なサンプルでasync defの機能は何となく使われていることが多いように思えます。そのため、この発表で開発者が自分でasyncを正しく使用できることは重要だと考えたからです。

オーディエンスが持って帰れる具体的な知識やノウハウ

FastAPIのasync defとはどのような機能か。
どのような場合に使用するべきか。

オーディエンスに求める前提知識

FastAPIの基礎知識

オーディエンスの経験レベル

Beginner

発表の言語

日本語

発表資料の言語

日本語

Acroquest Technology株式会社所属。
NLP・検索を専門に、今はRAGソリューションの開発を担当。