非同期センチメント分析エンドポイントの作成
ソーシャルメディア分析プラットフォームを構築しており、レビューのセンチメントを分析する必要があります。高トラフィックを効率よく処理するために、async エンドポイントを実装しましょう。センチメント分析モデルはすでに読み込まれており、sentiment_model として利用できます。
この演習はコースの一部です
FastAPI を使った AI のプロダクション環境へのデプロイ
演習の手順
- FastAPI アプリを使って、非同期の POST エンドポイント
/analyzeを作成します。 - 他の処理をブロックせずに
sentiment_modelを非同期で呼び出すためのキーワードを追加します。 - レビューのテキストを渡しながら
sentiment_modelを別スレッドで実行し、イベントループをブロックしないようにします。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Review(BaseModel):
text: str
# Create async endpoint at /analyze route
@app.post("____")
# Write an asynchronous function to process review's text
____ def analyze_review(review: Review):
# Run the model in a separate thread to avoid any event loop blockage
result = ____ asyncio.____(sentiment_model, ____)
return {"sentiment": result[0]["label"]}