Не удается получить данные из url для выполнения прогнозирования в django rest api
Я пытался сделать предсказания в drf и celery, и мой файл tasks.py имеет вид
@shared_task(bind=True)
@api_view(['GET'])
def predictions(self):
solute = request.GET.get('solute')
solvent = request.GET.get('solvent')
mol = Chem.MolFromSmiles(solute)
mol = Chem.AddHs(mol)
solute = Chem.MolToSmiles(mol)
solute_graph = get_graph_from_smile(solute)
mol = Chem.MolFromSmiles(solvent)
mol = Chem.AddHs(mol)
solvent = Chem.MolToSmiles(mol)
solvent_graph = get_graph_from_smile(solvent)
delta_g, interaction_map = model([solute_graph.to(device), solvent_graph.to(device)])
return delta_g.detach(), torch.trunc(interaction_map).detach()
и мой файл views.py имеет вид
@api_view(['GET'])
def result(request):
response = {}
results = predictions.apply_async()
# response["interaction_map"] = (results[1].numpy()).tolist()
# final_results = results.get()
print(results.get(propagate=False))
# response["predictions"] = results[0].item()
return Response({'result': results.get(propagate=False)}, status=200)
Я получаю ошибку @api_view(['GET']) NameError: name 'api_view' is not defined
.
Я знаю, что загрузка растворителя и растворителя в файл views.py устраняет проблему. но я хочу получить их непосредственно в файле tasks.py. Если это невозможно, я хочу перенести solute
и solvent
в файл tasks.py. Как я могу это сделать?
solute = request.GET.get('solute')
solvent = request.GET.get('solvent')