Tengo una API de aprendizaje automático donde hago predicciones. Funciona bien antes de introducir task_id . Pero después de agregar task_id , obtengo una respuesta nula a pesar de que funciona correctamente pero no devuelve la respuesta
@app.get('/predict') def predict(task_id,solute: str, solvent: str): if task_id ==0: results = predictions(solute, solvent) response["interaction_map"] = (results[1].detach().numpy()).tolist() response["predictions"] = results[0].item() return {'result': response} if task_id == 1: return "this is second one"La razón para devolver null es que su código nunca llega a las declaraciones if (que, por cierto, debería ser if ... elif , en lugar de tener dos declaraciones if individuales). Esto se debe a que su punto final recibe task_id como una cadena (es decir, "0", "1", etc.), pero verifica los valores enteros. Por lo tanto, debe declarar task_id como parámetro int , como se muestra a continuación:
@app.get('/predict') def predict(task_id: int, solute: str, solvent: str): if task_id == 0: results = predictions(solute, solvent) response["interaction_map"] = (results[1].detach().numpy()).tolist() response["predictions"] = results[0].item() return {'result': response} elif task_id == 1: return "this is second one" else: return "some default response"