新しいエンドポイントバージョンの追加
ペンギン分類 API のユーザーから、JSON 辞書の代わりにスペース区切りのテキスト文字列からデータを前処理するエンドポイントが欲しいというリクエストがありました。新しい入力形式に対応するため、アプリに「v2」のスキーマとエンドポイントを追加する必要があります。
app という名前の FastAPI インスタンスと PenguinV1 クラスはあらかじめ読み込まれています。
この演習はコースの一部です
FastAPI を使った AI のプロダクション環境へのデプロイ
演習の手順
- 文字列型のパラメータ
dataを受け取るPenguinV2Pydantic モデルを追加してください。 /v2/penguin_classifierに v2 ペンギン分類エンドポイントを追加してください。- v2 エンドポイントの入力として v2 モデルを使用してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Add v2 model
class ____(BaseModel):
data: str
@app.post("/v1/penguin_classifier")
def classify_penguin_v1(penguin: PenguinV1):
values = list(penguin.model_dump().values())
result = classifier.predict([values])[0]
return result
# Add v2 endpoint
@app.post("____")
# Use v2 model
def classify_penguin_v2(penguin: ____):
values = penguin.data.split()
result = classifier.predict([values])[0]
return result