Tengo una aplicación FastAPI que hace una predicción basada en los datos HTTP POST que se le envían. El código es el siguiente
import tensorflow as tf from typing import List from fastapi import FastAPI, Response from pydantic import BaseModel class ItemList(BaseModel): instances: List[List[float]] app = FastAPI() model = tf.keras.models.load_model('trainedmodel/1') @app.post('/v1/models/my_model:predict') def predict(inputdata: ItemList): # Extract [[1.5,1.65,2,0.5,-2,1.5,0.1,2,0.2]] result = { "predictions": [ model.predict(modelInput).flatten().tolist() ] } return result El tipo de solicitud para la aplicación es application/json y el cuerpo de la solicitud contiene {"instances":[[1.5,1.65,2,0.5,-2,1.5,0.1,2,0.2]]}
Necesito extraer [[1.5,1.65,2,0.5,-2,1.5,0.1,2,0.2]] del cuerpo de la solicitud para poder ingresarlo en el modelo (como modelInput en el código anterior). En Flask usé request.json['instances'] para hacerlo. ¿Puede alguien decirme cómo puedo hacer lo mismo en FastAPI?
Para acceder al cuerpo de la solicitud, solo puede usar inputdata.instances
class ItemList(BaseModel): instances: List[List[float]] @app.post('/v1/models/my_model:predict') def predict(inputdata: ItemList): # Extract [[1.5,1.65,2,0.5,-2,1.5,0.1,2,0.2]] extracted_list = inputdata.instances