code: def run_learn_remote(df: DataFrame, predictor_id: int) -> None:
      try:
          serialized_df = json.dumps(df.to_dict())
          predictor_record = db.Predictor.query.with_for_update().get(
              predictor_id
          )
          resp = requests.post(
              predictor_record.data["train_url"],
              json={
                  "df": serialized_df,
                  "target": predictor_record.to_predict[0],
              },
          )
  
          assert resp.status_code == 200
          predictor_record.data["status"] = "complete"
      except Exception:
          predictor_record.data["status"] = "error"
          predictor_record.data["error"] = str(resp.text)
  
      db.session.commit()
  
imports: import dataclasses
  import json
  import os
  import tempfile
  import traceback
  from datetime import datetime
  from pathlib import Path
  import lightwood
  import pandas
  import requests
  from lightwood.api.types import JsonAI, ProblemDefinition
  from pandas.core.frame import DataFrame
  import mindsdb.utilities.profiler
  from mindsdb.integrations.libs.const import PREDICTOR_STATUS
  from mindsdb.integrations.utilities.utils import format_exception_error
  from mindsdb.interfaces.model.functions import get_model_records
  from mindsdb.interfaces.storage import db
  from mindsdb.interfaces.storage.fs import RESOURCE_GROUP, FileStorage
  from mindsdb.interfaces.storage.json import get_json_storage
  from mindsdb.utilities import log
  from mindsdb.utilities.functions import mark_process
  from .utils import brack_to_mod, rep_recur, unpack_jsonai_old_args
label_desc: Use image node_id 5 for calling a global function with example usage: run_learn_remote(df, predictor_id) without return types